From 295f8d30b85988294225af3e089260e0cb024936 Mon Sep 17 00:00:00 2001 From: Aaron Hurt Date: Wed, 22 Jan 2020 15:48:49 -0600 Subject: [PATCH] follow hugo best practices and use a dedicated webserver for static assets --- Dockerfile-docs | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/Dockerfile-docs b/Dockerfile-docs index 43f06854a..0a469d22b 100644 --- a/Dockerfile-docs +++ b/Dockerfile-docs @@ -1,28 +1,33 @@ -FROM alpine:latest -MAINTAINER Aaron Hurt +FROM alpine:latest AS build ARG hugo_version=0.62.2 EXPOSE 1313 -## install hugo and other needed packages -RUN apk update && \ - apk add --no-cache ca-certificates && \ - wget -q -O - \ +## fetch and install hugo +RUN wget -q -O - \ https://github.com/gohugoio/hugo/releases/download/v${hugo_version}/hugo_${hugo_version}_Linux-64bit.tar.gz \ | tar -zxf - hugo && \ mv hugo /usr/local/bin/hugo && \ chmod 0755 /usr/local/bin/hugo -## populate hugo source -COPY docs /srv +## generate static content +COPY docs /opt/docs +WORKDIR /opt/docs +RUN /usr/local/bin/hugo --buildDrafts --cleanDestinationDir --destination /opt/output + +FROM alpine:latest + +## install thttpd (http://acme.com/software/thttpd/) +RUN apk add --no-cache thttpd + +## copy static assets form build +COPY --from=build /opt/output /var/www/http -## setup hugo resource cache -RUN mkdir -p /srv/resources && \ -chown nobody:nobody /srv/resources +## use package user +USER thttpd -## do not run as root -USER nobody +EXPOSE 1180 -## launch hugo and serve docs -ENTRYPOINT ["/usr/local/bin/hugo"] -CMD ["serve", "--disableFastRender", "--bind", "0.0.0.0", "--source", "/srv"] +## launch thttpd to serve static content +ENTRYPOINT ["/usr/sbin/thttpd"] +CMD ["-p", "1180", "-d", "/var/www/http", "-l", "/dev/stdout", "-D"]