The healtcheck takes really long to initialize, which might cause unnecessary downtime. This removes the default healthcheck from the dockerfile to avoid that for all users. It is still possible to add the healthcheck manually.
56 lines
1.6 KiB
Docker
56 lines
1.6 KiB
Docker
# syntax=docker/dockerfile:1
|
|
FROM --platform=$BUILDPLATFORM node:22.11.0-alpine AS frontendbuilder
|
|
|
|
WORKDIR /build
|
|
|
|
ENV PNPM_CACHE_FOLDER=.cache/pnpm/
|
|
ENV PUPPETEER_SKIP_DOWNLOAD=true
|
|
ENV CYPRESS_INSTALL_BINARY=0
|
|
|
|
COPY frontend/ ./
|
|
|
|
RUN corepack enable && \
|
|
pnpm install && \
|
|
pnpm run build
|
|
|
|
FROM --platform=$BUILDPLATFORM ghcr.io/techknowlogick/xgo:go-1.23.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 org.opencontainers.image.authors='maintainers@vikunja.io'
|
|
LABEL org.opencontainers.image.url='https://vikunja.io'
|
|
LABEL org.opencontainers.image.documentation='https://vikunja.io/docs'
|
|
LABEL org.opencontainers.image.source='https://code.vikunja.io/vikunja'
|
|
LABEL org.opencontainers.image.licenses='AGPLv3'
|
|
LABEL org.opencontainers.image.title='Vikunja'
|
|
|
|
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/
|