# Global build argument ARG THTTPD_VER=2.29 FROM alpine:latest AS builder # =====BUILD thttpd===== WORKDIR /usr/src ARG THTTPD_VER # Install dependencies & build thttpd RUN apk update && \ apk add --no-cache curl hugo build-base && \ curl -sSL "https://www.acme.com/software/thttpd/thttpd-$THTTPD_VER.tar.gz" | \ tar xzf - && \ cd "thttpd-$THTTPD_VER" && \ ./configure && \ make # =====BUILD THE BLOG===== WORKDIR /usr/src/app # Copy site files for building COPY . ./ # Generate the site RUN hugo --minify # ====CREATE RELEASE IMAGE==== FROM alpine:latest ARG THTTPD_VER # Install dumb-init & create a non-root user RUN apk update && \ apk add --no-cache dumb-init && \ addgroup -g 82 -S www-data && \ adduser -u 82 -D -S -G www-data www-data # Copy over binary & static files COPY --from=builder /usr/src/thttpd-$THTTPD_VER/thttpd /usr/local/bin/thttpd COPY --from=builder /usr/src/app/public /var/www/html COPY thttpd.conf /etc/thttpd.conf # A static file server doesn't need root USER www-data:www-data ENTRYPOINT [ "dumb-init", "--" ] CMD [ "/usr/local/bin/thttpd", "-D", "-C", "/etc/thttpd.conf" ]