65 lines
1.6 KiB
Docker
65 lines
1.6 KiB
Docker
# 2025-08-13 Hyperling
|
|
# Changelog
|
|
## 20261027: Install hugo from source. paperMod currently requires ~150 and Debian has ~130, latest is ~160.
|
|
|
|
## Image ##
|
|
FROM debian:trixie-slim
|
|
USER root
|
|
|
|
## Setup ##
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
|
|
# System Dependencies
|
|
run echo "Install Dependencies"
|
|
RUN apt-get update && \
|
|
apt-get install -y \
|
|
git nginx cron curl bash sudo \
|
|
ca-certificates \
|
|
golang gcc && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# Compile Hugo (same version Artix is currently shipping, rather than latest.)
|
|
run echo "Compile Hugo"
|
|
RUN CGO_ENABLED=1 go install -tags extended github.com/gohugoio/hugo@v0.164.0
|
|
|
|
# Install Hugo
|
|
run echo "Install Hugo"
|
|
RUN mv -v $HOME/go/bin/hugo /usr/local/bin/hugo && \
|
|
chmod -v 755 /usr/local/bin/hugo
|
|
|
|
RUN echo "Clean Up Go"
|
|
RUN rm -rfv /usr/local/go \
|
|
/root/go/pkg/mod \
|
|
/root/.cache/go-build \
|
|
/root/go \
|
|
&& apt-get remove -y --purge golang gcc && \
|
|
apt-get autoremove -y && \
|
|
apt-get clean && \
|
|
rm -rfv /var/lib/apt/lists/* /tmp/*
|
|
|
|
# User and Group
|
|
#RUN groupadd -r hugo && useradd -r -g hugo hugo
|
|
|
|
# Hugo Directory Tree
|
|
RUN mkdir -pv /var/www/hugo/
|
|
|
|
# NGINX Directory Tree
|
|
RUN mkdir -pv /var/www/html/
|
|
|
|
# Copy Cron Job to Update Git Repo
|
|
COPY files/crontab /etc/crontab
|
|
COPY files/cronjob.sh /var/www/hugo/cronjob.sh
|
|
|
|
# Hugo User Permissions
|
|
RUN chown -Rv www-data:www-data /var/www/
|
|
RUN chmod +x /var/www/hugo/cronjob.sh
|
|
|
|
# Copy Start Script
|
|
COPY files/main.sh /root/main.sh
|
|
RUN chmod +x /root/main.sh
|
|
|
|
## Main ##
|
|
# Install + Run Website
|
|
WORKDIR /var/www/
|
|
CMD /root/main.sh "$REPO" "$BRANCH" "$PROD" "$DEV" "$BASEURL"
|