38 lines
No EOL
1,021 B
Docker
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"] |