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.
This commit is contained in:
YAEGASHI Takeshi 2019-01-22 02:50:50 +09:00
parent 2943da00e2
commit cb41a91a65

View File

@ -1,18 +1,22 @@
FROM golang:1.11-stretch AS builder 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 . . COPY . .
# Fetch dependencies # 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 RUN dep ensure --vendor-only
# Build image # Build binary
RUN ./configure && make clean oauth2_proxy RUN ./configure && make build
# Copy binary to debian # Copy binary to alpine
FROM debian:stretch 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 COPY --from=builder /go/src/github.com/pusher/oauth2_proxy/oauth2_proxy /bin/oauth2_proxy
ENTRYPOINT ["/bin/oauth2_proxy"] ENTRYPOINT ["/bin/oauth2_proxy"]