diff --git a/Dockerfile b/Dockerfile index e3ad4fa..9cb926c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,38 +1,24 @@ # Global build argument ARG THTTPD_VER=2.29 -ARG DI_VER=1.2.5 -FROM ubuntu:latest AS builder +FROM alpine:latest AS builder -# =====BUILD BINARIES===== +# =====BUILD thttpd===== WORKDIR /usr/src ARG THTTPD_VER -ARG DI_VER # Install dependencies & build thttpd -RUN apt update && \ - apt install -y --no-install-recommends \ - curl \ - ca-certificates \ - hugo \ - musl-dev \ - musl-tools \ - build-essential && \ +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" && \ - CC="musl-gcc -static" ./configure && \ - make -j$(nproc) - -# Build dumb-init -RUN curl -sSL "https://github.com/Yelp/dumb-init/archive/refs/tags/v$DI_VER.tar.gz" | \ - tar xzf - && \ - cd "dumb-init-$DI_VER" && \ - CC="musl-gcc -static" make build + ./configure && \ + make -# =====BUILD BLOG===== +# =====BUILD THE BLOG===== WORKDIR /usr/src/app # Copy site files for building @@ -43,18 +29,22 @@ RUN hugo --minify # ====CREATE RELEASE IMAGE==== -FROM scratch +FROM alpine:latest ARG THTTPD_VER -ARG DI_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 /bin/thttpd -COPY --from=builder /usr/src/dumb-init-$DI_VER/dumb-init /bin/dumb-init -COPY --from=builder /usr/src/app/public /static +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 82:82 +USER www-data:www-data -ENTRYPOINT [ "/bin/dumb-init", "--" ] -CMD [ "/bin/thttpd", "-D", "-C", "/etc/thttpd.conf" ] +ENTRYPOINT [ "dumb-init", "--" ] +CMD [ "/usr/local/bin/thttpd", "-D", "-C", "/etc/thttpd.conf" ] diff --git a/thttpd.conf b/thttpd.conf index c68ffe2..4a3249f 100644 --- a/thttpd.conf +++ b/thttpd.conf @@ -1,2 +1,2 @@ port=8080 -dir=/static +dir=/var/www/html