From: Thibault Jamet Date: Thu, 7 Sep 2017 13:17:44 +0000 (+0200) Subject: Split go build in Dockerfile X-Git-Tag: v0.29~10 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=d9697e275;p=brevno-suite%2Fhugo 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 --- diff --git a/Dockerfile b/Dockerfile index ca165a98..e0da7d83 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,9 +2,11 @@ FROM golang:1.9.0-alpine3.6 AS build 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