From 09d960f17396eb7fd2c8fe6527db9503d59f0b4f Mon Sep 17 00:00:00 2001 From: Thibault Jamet Date: Thu, 7 Sep 2017 15:08:56 +0200 Subject: Update Dockerfile to benefit build cache Docker has recently introduces buikld-stages (as of version 17.05) Build stages allows to benefit the docker build cache as well as reducing the size of the resulting image c.f. https://docs.docker.com/engine/userguide/eng-image/multistage-build/ This change allows to have faster builds when running `docker build` several times after changing some little code Signed-off-by: Thibault Jamet --- Dockerfile | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) (limited to 'Dockerfile') diff --git a/Dockerfile b/Dockerfile index f8ec73a86..ca165a986 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,30 +1,18 @@ -FROM alpine:3.6 +FROM golang:1.9.0-alpine3.6 AS build -ENV GOPATH /go -ENV PATH $GOPATH/bin:$PATH +RUN apk add --no-cache --virtual git musl-dev +RUN go get github.com/kardianos/govendor +RUN govendor get github.com/gohugoio/hugo +WORKDIR /go/src/github.com/gohugoio/hugo +RUN rm -f $GOPATH/bin/hugo +RUN go install -ldflags '-s -w' +FROM alpine:3.6 RUN \ adduser -h /site -s /sbin/nologin -u 1000 -D hugo && \ apk add --no-cache \ - dumb-init && \ - apk add --no-cache --virtual .build-deps \ - gcc \ - musl-dev \ - go \ - git && \ - mkdir -p \ - ${GOPATH}/bin \ - ${GOPATH}/pkg \ - ${GOPATH}/src && \ - go get github.com/kardianos/govendor && \ - govendor get github.com/gohugoio/hugo && \ - cd $GOPATH/src/github.com/gohugoio/hugo && \ - rm -f $GOPATH/bin/hugo && \ - go install -ldflags '-s -w' && \ - cd $GOPATH && \ - rm -rf pkg src .cache bin/govendor && \ - apk del .build-deps - + dumb-init +COPY --from=build /go/bin/hugo /bin/hugo USER hugo WORKDIR /site VOLUME /site -- cgit v1.2.3