From 7fb0ebff20778fb6f367c99104897bab7b0cc08a Mon Sep 17 00:00:00 2001 From: Joel Schmid Date: Sat, 3 Apr 2021 13:29:39 +0200 Subject: [PATCH] optimize Dockerfile using scratch image --- Dockerfile | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9930ff7..9eee3d7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,16 @@ -FROM golang:1.16 - +############################ +# STEP 1 build executable binary +############################ +FROM golang:1.16 AS builder RUN mkdir -p /weather-api - WORKDIR /weather-api - ADD . /weather-api - -RUN go build ./main.go +RUN env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -ldflags "$(govvv -flags)" -o app +# STEP 2 build a small image +############################ +FROM scratch +COPY --from=builder /weather-api/app /app +COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ EXPOSE 10000 - -CMD ["./main"] \ No newline at end of file +ENTRYPOINT ["/app"] \ No newline at end of file