From 075b17ee1d621e0ebbcecf1063f8f68a00ac221a Mon Sep 17 00:00:00 2001 From: Anthony Metzidis Date: Wed, 6 Feb 2019 17:01:26 -0800 Subject: [PATCH] Support Docker args TAGS, WORKDIR, CGO; speed up repetitive builds --- .dockerignore | 1 + Dockerfile | 26 ++++++++++++++++---------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/.dockerignore b/.dockerignore index 3342288b4..a183f6fcf 100644 --- a/.dockerignore +++ b/.dockerignore @@ -6,3 +6,4 @@ .circleci docs examples +Dockerfile diff --git a/Dockerfile b/Dockerfile index 2cd4a14d6..01132e33e 100755 --- a/Dockerfile +++ b/Dockerfile @@ -2,25 +2,31 @@ # Twitter: https://twitter.com/gohugoio # Website: https://gohugo.io/ -FROM golang:1.11-alpine3.7 AS build +FROM golang:1.11-stretch AS build -ENV CGO_ENABLED=0 -ENV GOOS=linux -ENV GO111MODULE=on WORKDIR /go/src/github.com/gohugoio/hugo -RUN apk add --no-cache \ - git \ - musl-dev +RUN apt-get install \ + git gcc g++ binutils COPY . /go/src/github.com/gohugoio/hugo/ -RUN go install -ldflags '-s -w' +ENV GO111MODULE=on +RUN go get -d . + +ARG CGO=0 +ENV CGO_ENABLED=${CGO} +ENV GOOS=linux + +# default non-existent build tag so -tags always has an arg +ARG BUILD_TAGS="99notag" +RUN go install -ldflags '-w -extldflags "-static"' -tags ${BUILD_TAGS} # --- FROM scratch COPY --from=build /go/bin/hugo /hugo -WORKDIR /site -VOLUME /site +ARG WORKDIR="/site" +WORKDIR ${WORKDIR} +VOLUME ${WORKDIR} EXPOSE 1313 ENTRYPOINT [ "/hugo" ] CMD [ "--help" ]