From cb41a91a65c865ca2c83e5a19ef5d17cdb15f84e Mon Sep 17 00:00:00 2001 From: YAEGASHI Takeshi Date: Tue, 22 Jan 2019 02:50:50 +0900 Subject: [PATCH] Docker build optimization Update Dockefile to get a much smaller footprint with alpine image. Optimize ordering of build steps to avoid needless downloads. Include CA certificates needed for practical use. --- Dockerfile | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index c3137f5..487d29b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,22 @@ FROM golang:1.11-stretch AS builder -WORKDIR /go/src/github.com/pusher/oauth2_proxy + +# Download tools +RUN wget -O $GOPATH/bin/dep https://github.com/golang/dep/releases/download/v0.5.0/dep-linux-amd64 +RUN chmod +x $GOPATH/bin/dep + +# Copy sources +WORKDIR $GOPATH/src/github.com/pusher/oauth2_proxy COPY . . # Fetch dependencies -RUN wget -O dep https://github.com/golang/dep/releases/download/v0.5.0/dep-linux-amd64 -RUN chmod +x dep -RUN mv dep $GOPATH/bin/dep RUN dep ensure --vendor-only -# Build image -RUN ./configure && make clean oauth2_proxy +# Build binary +RUN ./configure && make build -# Copy binary to debian -FROM debian:stretch +# Copy binary to alpine +FROM alpine:3.8 +RUN apk add --no-cache ca-certificates COPY --from=builder /go/src/github.com/pusher/oauth2_proxy/oauth2_proxy /bin/oauth2_proxy ENTRYPOINT ["/bin/oauth2_proxy"]