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:
parent
2943da00e2
commit
cb41a91a65
20
Dockerfile
20
Dockerfile
@ -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"]
|
||||||
|
Loading…
Reference in New Issue
Block a user