50 lines
1.1 KiB
Docker
50 lines
1.1 KiB
Docker
##############
|
|
# build site #
|
|
##############
|
|
|
|
ARG DEBIAN_VERSION=bookworm-slim
|
|
FROM debian:${DEBIAN_VERSION} AS build
|
|
|
|
ARG HUGO_VERSION
|
|
ARG HUGO_FILENAME=hugo_extended_${HUGO_VERSION}_linux-amd64.deb
|
|
|
|
# env setup
|
|
WORKDIR /usr/local/src/hugo-site
|
|
|
|
# install hugo
|
|
RUN set -ex; \
|
|
\
|
|
apt-get update; apt-get install -y \
|
|
curl \
|
|
; \
|
|
\
|
|
curl -sSL -o /tmp/hugo.deb \
|
|
"https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/${HUGO_FILENAME}"; \
|
|
apt-get install -y /tmp/hugo.deb; \
|
|
rm -f /tmp/hugo.deb; \
|
|
\
|
|
apt-get autoremove --purge -y \
|
|
curl \
|
|
; rm -rf /var/lib/apt/lists/*;
|
|
|
|
# copy and build site
|
|
COPY ./ ./
|
|
RUN hugo \
|
|
--cleanDestinationDir \
|
|
--minify \
|
|
--destination /tmp/hugo-site/html
|
|
|
|
##############
|
|
# serve site #
|
|
##############
|
|
|
|
FROM nginx:mainline-alpine AS production
|
|
|
|
# remove default site
|
|
RUN rm -rf /usr/share/nginx/html
|
|
|
|
# add conf.d directory
|
|
COPY tools/chores/.publish/nginx_conf.d /etc/nginx/conf.d
|
|
|
|
# add built site
|
|
COPY --from=build /tmp/hugo-site/html /usr/share/nginx/html
|