mirror of
https://github.com/0rangebananaspy/authelia.git
synced 2024-09-14 22:47:21 +07:00
ff7f9a50ab
* [FEATURE] Docker simplification and configuration generation The Authelia binary now will attempt to generate configuration based on the latest template assuming that the config location specified on startup does not exist. If a file based backend is selected and the backend cannot be found similarly it will generate a `user_database.yml` based a template. This will allow more seamless bootstrapping of an environment no matter the deployment method. We have also squashed the Docker volume requirement down to just `/config` thus removing the requirement for `/var/lib/authelia` this is primarily in attempts to simplify the Docker deployment. Users with the old volume mappings have two options: 1. Change their mappings to conform to `/config` 2. Change the container entrypoint from `authelia --config /config/configuration.yml` to their old mapping * Adjust paths relative to `/etc/authelia` and simplify to single volume for compose * Add generation for file backend based user database * Refactor Docker volumes and paths to /config * Refactor Docker WORKDIR to /app * Fix integration tests * Update BREAKING.md for v4.20.0 * Run go mod tidy * Fix log_file_path in miscellaneous.md docs * Generate config and userdb with 0600 permissions * Fix log_file_path in config.template.yml
67 lines
1.8 KiB
Docker
67 lines
1.8 KiB
Docker
# ========================================
|
|
# ===== Build image for the frontend =====
|
|
# ========================================
|
|
FROM node:14-alpine AS builder-frontend
|
|
|
|
WORKDIR /node/src/app
|
|
COPY web .
|
|
|
|
# Install the dependencies and build
|
|
RUN yarn install --frozen-lockfile && INLINE_RUNTIME_CHUNK=false yarn build
|
|
|
|
# =======================================
|
|
# ===== Build image for the backend =====
|
|
# =======================================
|
|
FROM golang:1.14.4-alpine AS builder-backend
|
|
|
|
ARG BUILD_TAG
|
|
ARG BUILD_COMMIT
|
|
|
|
# gcc and musl-dev are required for building go-sqlite3
|
|
RUN apk --no-cache add gcc musl-dev
|
|
|
|
WORKDIR /go/src/app
|
|
|
|
COPY go.mod go.sum config.template.yml ./
|
|
COPY --from=builder-frontend /node/src/app/build public_html
|
|
|
|
RUN go mod download
|
|
|
|
COPY cmd cmd
|
|
COPY internal internal
|
|
|
|
# Prepare static files to be embedded in Go binary
|
|
RUN go get -u aletheia.icu/broccoli && \
|
|
cd internal/configuration && \
|
|
go generate . && \
|
|
cd ../server && \
|
|
go generate .
|
|
|
|
# Set the build version and time
|
|
RUN echo "Write tag ${BUILD_TAG} and commit ${BUILD_COMMIT} in binary." && \
|
|
sed -i "s/__BUILD_TAG__/${BUILD_TAG}/" cmd/authelia/constants.go && \
|
|
sed -i "s/__BUILD_COMMIT__/${BUILD_COMMIT}/" cmd/authelia/constants.go
|
|
|
|
# Build binary for collecting integration test coverage
|
|
RUN cd cmd/authelia && \
|
|
go test -c --tags coverage -covermode=atomic -o authelia -coverpkg github.com/authelia/authelia/...
|
|
|
|
# ===================================
|
|
# ===== Authelia official image =====
|
|
# ===================================
|
|
FROM alpine:3.12.0
|
|
|
|
RUN apk --no-cache add ca-certificates tzdata
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=builder-backend /go/src/app/cmd/authelia/authelia ./
|
|
|
|
EXPOSE 9091
|
|
|
|
VOLUME /config
|
|
|
|
ENV PATH="/app:${PATH}"
|
|
|
|
CMD ["authelia", "-test.coverprofile=/authelia/coverage.txt", "COVERAGE", "--config", "/config/configuration.yml"]
|