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"]