From d9697e275ecb038958b3dcea2b43e11dcba28fc9 Mon Sep 17 00:00:00 2001 From: Thibault Jamet Date: Thu, 7 Sep 2017 15:17:44 +0200 Subject: 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 --- Dockerfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'Dockerfile') diff --git a/Dockerfile b/Dockerfile index ca165a986..e0da7d834 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 -- cgit v1.2.3