Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build(go): add govender for the build process #3674

Merged
merged 4 commits into from Jul 23, 2017
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
22 changes: 10 additions & 12 deletions Dockerfile
Expand Up @@ -4,24 +4,22 @@ ENV GOPATH /go

RUN \
adduser -h /site -s /sbin/nologin -u 1000 -D hugo && \
apk add --no-cache dumb-init && \
apk add --no-cache --virtual .build-deps \
git \
make && \
apk add --no-cache \
dumb-init \
git && \
go get github.com/kardianos/govendor && \
govendor get github.com/gohugoio/hugo && \
cd $GOPATH/src/github.com/gohugoio/hugo && \
make install test && \
rm -rf $GOPATH/src/* && \
apk del .build-deps

USER hugo
go install && \
cd $GOPATH && \
rm -rf pkg src bin/govendor && \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @ellerbrock,

Could you please check and see if a $GOPATH/.cache directory exists?
Testing on Debian, govendor get caches all the dependencies it fetches inside the $GOPATH/.cache/govendor/ directory, and this directory totals 129MB here.

So, yes, would changing

  rm -rf pkg src bin/govendor && \

to

  rm -rf pkg src .cache bin/govendor && \

make the image smaller? :-)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hi @anthonyfok ,

thanks for the answers, 129MB would be a big optimization.
i had a look inside the container (https://hub.docker.com/r/ellerbrock/alpine-hugo/) but could not see any .cache folder.
Are there any new changes causing this or do i miss something?

docker run -it --entrypoint ash ellerbrock/alpine-hugo

/ $ cd /go
/go $ ls -alF
total 12
drwxrwxrwx    1 root     root          4096 Jul 21 16:39 ./
drwxr-xr-x    1 root     root          4096 Jul 23 06:20 ../
drwxrwxrwx    1 root     root          4096 Jul 21 16:39 bin/
/go $

Cheers Maik

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @ellerbrock,

Thank you for your quick response.

The $GOPATH/.cache directory is created by govendor, though I can see that, unlike this pull request, you are not using actually govendor at https://hub.docker.com/r/ellerbrock/alpine-hugo/~/dockerfile/, hence no $GOPATH/.cache. 😉 (which personally I won't judge because, putting my Debian Developer hat on, both Debian and Fedora's Go packaging policy demands that we un-vendor everything, so govendor isn't used in packaging Hugo, but anyhow...)

I am now attempting to run sudo docker build to actually test your Dockerfile. (My hard disk is quite full; hope I won't run out of space doing so, haha.)

apk del --no-cache git go

USER hugo
WORKDIR /site

EXPOSE 1313
VOLUME /site
EXPOSE 1313

ENTRYPOINT ["/usr/bin/dumb-init", "--", "hugo"]

CMD [ "--help" ]