ref: d9697e275ecb038958b3dcea2b43e11dcba28fc9
parent: 09d960f17396eb7fd2c8fe6527db9503d59f0b4f
author: Thibault Jamet <[email protected]>
date: Thu Sep 7 11:17:44 EDT 2017
Split go build in Dockerfile To maximize the usage of cache, split the govendor get in steps: - govendor fetch to get the pinned versions of dependencies - go install to actually build the binary Doing so allows not to re-download the whole dependencies when changing lines in hugo repository The current Dockerfile generates an image of 16.6MB Signed-off-by: Thibault Jamet <[email protected]>
--- a/Dockerfile
+++ b/Dockerfile
@@ -2,9 +2,11 @@
RUN apk add --no-cache --virtual git musl-dev
RUN go get github.com/kardianos/govendor
-RUN govendor get github.com/gohugoio/hugo
+
+ADD vendor/vendor.json /go/src/github.com/gohugoio/hugo/vendor/vendor.json
WORKDIR /go/src/github.com/gohugoio/hugo
-RUN rm -f $GOPATH/bin/hugo
+RUN govendor sync
+ADD . /go/src/github.com/gohugoio/hugo/
RUN go install -ldflags '-s -w'
FROM alpine:3.6