forked from vikunja/vikunja
kolaente
e42a605597
Since Vikunja's docker image is now based on the scratch image, the root ca certificates are not included by default anymore. This meant Vikunja could not check if the certificate presented by a remote host was valid, thus failing the connection. This meant it was impossible to use features communicating with external hosts such as webhooks, openid auth or gravatar.
48 lines
1.3 KiB
Docker
48 lines
1.3 KiB
Docker
# syntax=docker/dockerfile:1
|
|
FROM --platform=$BUILDPLATFORM node:20.11.0-alpine AS frontendbuilder
|
|
|
|
WORKDIR /build
|
|
|
|
ENV PNPM_CACHE_FOLDER .cache/pnpm/
|
|
ENV PUPPETEER_SKIP_DOWNLOAD true
|
|
|
|
COPY frontend/ ./
|
|
|
|
RUN corepack enable && \
|
|
pnpm install && \
|
|
pnpm run build
|
|
|
|
FROM --platform=$BUILDPLATFORM techknowlogick/xgo:go-1.21.x AS apibuilder
|
|
|
|
RUN go install github.com/magefile/mage@latest && \
|
|
mv /go/bin/mage /usr/local/go/bin
|
|
|
|
WORKDIR /go/src/code.vikunja.io/api
|
|
COPY . ./
|
|
COPY --from=frontendbuilder /build/dist ./frontend/dist
|
|
|
|
ARG TARGETOS TARGETARCH TARGETVARIANT
|
|
|
|
ENV GOPROXY https://goproxy.kolaente.de
|
|
RUN export PATH=$PATH:$GOPATH/bin && \
|
|
mage build:clean && \
|
|
mage release:xgo "${TARGETOS}/${TARGETARCH}/${TARGETVARIANT}"
|
|
|
|
# ┬─┐┬ ┐┌┐┐┌┐┐┬─┐┬─┐
|
|
# │┬┘│ │││││││├─ │┬┘
|
|
# ┘└┘┘─┘┘└┘┘└┘┴─┘┘└┘
|
|
|
|
# The actual image
|
|
FROM scratch
|
|
LABEL maintainer="maintainers@vikunja.io"
|
|
WORKDIR /app/vikunja
|
|
ENTRYPOINT [ "/app/vikunja/vikunja" ]
|
|
EXPOSE 3456
|
|
USER 1000
|
|
|
|
ENV VIKUNJA_SERVICE_ROOTPATH=/app/vikunja/
|
|
ENV VIKUNJA_DATABASE_PATH=/db/vikunja.db
|
|
|
|
COPY --from=apibuilder /build/vikunja-* vikunja
|
|
COPY --from=apibuilder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
|