Hugo¶
Hugo Theme Ananke per Docker Compose aus Git Repo Ordner¶
Infolinks zu Hugo
GitHub Repo Hugo - Releases - Anm.: bitte ggf. auf neues DEB aktualisieren in Dockerfile
Wie immer führen viele Wege zum Ziel. Wir wollen eine Website mit Hugo
bauen und hierfür die neueste Hugo Version nutzen. Wir starten mit einem
Ubuntu Basis Image und erstellen eine Dockerfile Datei mit allen
nötigen Direktiven für den Bau eines solchen Hugo-Ubuntu Images.
# Defines Image for Hugo Service
FROM ubuntu:latest
WORKDIR /data
LABEL maintainer "joe.brandes@gmail.com"
LABEL description "Hugo service with Go and Ubuntu"
ENV TZ="Europe/Berlin" \
HUGODEBSRC="https://github.com/gohugoio/hugo/releases/download/v0.126.2/hugo_extended_0.126.2_linux-amd64.deb" \
PROJECT="quickstart"
RUN ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime && \
echo ${TZ} > /etc/timezone && \
apt update && \
apt install -y vim git curl && \
curl -L ${HUGODEBSRC} -o ./hugo.deb && \
apt install -y ./hugo.deb
EXPOSE 1313
COPY data/ /data
CMD [ "bash" ]
Wir könnten jetzt einen entsprechenden Container mit docker run ...
erzeugen und nutzen.
Wir wollen aber die noch effizientere Docker Compose Lösung umsetzen:
Hugo Projekt starten:
docker compose up --build -dundHugo Projekt stoppen:
docker compose down.
services:
hugo:
build: .
container_name: hugo-server
working_dir: /data/quickstart
command: hugo server --bind=0.0.0.0 -D
ports:
- 1313:1313
volumes:
- ./data:/data
Für die Erstausstattung habe ich einen vollständigen Projektordner mit einem Hugo-Projekt basierend auf dem Theme Ananke meinem Trainings-Repo joebrandes/containercodes beigelegt.
Hinweis
Ohne config.toml - die Hugo-Projekt-Konfigurationsdatei -
mit passenden Daten und Einstellungen kann der Hugo Server leider nicht
sauber starten.
Bei der Umsetzung mit Docker Desktop für Windows sollte man statt der Mount-Binds im Compose-File auf die Docker Volumes ausweichen.
Also einfach meinen Repo-Ordner nutzen. Bei der Erstellung des Images werden die nötigen Quickstart Projekt Dateien über die COPY-Direktive erzeugt.
Die beigelegten Dateien und Hilfsskripte zeigen die manuelle Umsetzung.
Die Bearbeitung der Hugo-Dateien kann wieder mit Dev Container Technik im Visual Studio Code durchgeführt werden. Das funktioniert dann ja auch wenn man auf Docker Volumes ausweichen möchte oder muss.
Man kann auch automatisierte Umsetzungen der Hugo Webseiten versuchen:
GitHub Actions
GitLab Runner
Jenkins
…
Eine Anleitung für Hugo mit dem GitLab Runner findet man in dieser Ausarbeitung bei Hugo GitLab Runner.