users/Dockerfile
GnomeZworc c78316301f
v1.0.0: health: add a simple healthcheck
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2024-03-16 12:59:09 +01:00

38 lines
No EOL
1,021 B
Docker

FROM golang:1.21-alpine AS develop
# Changement du répertoire de travail
WORKDIR /
RUN apk update && apk add --no-cache curl tar && \
curl -O https://gitlab.g3e.fr/api/v4/projects/34/packages/generic/minicurl/v1.0.0/minicurl_linux_amd64.tar.gz && \
tar xzvf minicurl_linux_amd64.tar.gz
# Changement du répertoire de travail
WORKDIR /app
# pre-copy/cache go.mod for pre-downloading dependencies and only redownloading them in subsequent builds if they change
COPY go.mod go.sum ./
RUN go mod download && go mod verify
ENV PORT=1222
HEALTHCHECK --interval=1s --timeout=30s --start-period=5s --retries=3 CMD [ "/minicurl" ]
COPY . .
CMD ["sh", "-c", "echo 'run application' && go run ./cmd/"]
FROM develop AS build
RUN CGO_ENABLED=0 go build -o ./build/app ./cmd/
FROM scratch AS release
COPY --from=build /app/build/app /exec
COPY --from=develop /minicurl /minicurl
EXPOSE 1222
ENV PORT=1222
HEALTHCHECK --interval=1s --timeout=30s --start-period=5s --retries=3 CMD [ "/minicurl" ]
ENTRYPOINT ["/exec"]