mirror of
https://github.com/0rangebananaspy/authelia.git
synced 2024-09-14 22:47:21 +07:00
6db5455762
This change will allow us to collect frontend code coverage from our Selenium based integration tests. Given that the frontend is embedded into the Go binary and the integration tests run with a compiled binary in Docker this poses some issues with the instrumented code and the ability for it to run in this manner. To fix this we need to relax Authelia's CSP for the integration tests. This is achieved by setting the env variable `ENVIRONMENT` to `dev`.
67 lines
1.8 KiB
Docker
67 lines
1.8 KiB
Docker
# ========================================
|
|
# ===== Build image for the frontend =====
|
|
# ========================================
|
|
FROM node:15-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 coverage
|
|
|
|
# =======================================
|
|
# ===== Build image for the backend =====
|
|
# =======================================
|
|
FROM golang:1.15.5-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.1
|
|
|
|
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"]
|