Some checks failed
Image bauen und in die Registry pushen / build (push) Has been cancelled
Bisher baute der Server das Image selbst und der Container holte sich Inhalte per git pull ueber deploy.php. Das war seit jeher kaputt: git verweigerte wegen "dubious ownership" die Arbeit, die &&-Kette brach ab, hugo lief nie. Live war stets der Stand des letzten Containerstarts. Statt das zu flicken faellt der Mechanismus jetzt weg. Das Dockerfile ist zweistufig: Hugo baut die Seite im Builder, das Laufzeit-Image enthaelt nur nginx und fertiges HTML. Kein PHP, kein git, kein Hugo mehr zur Laufzeit - 49 MB statt eines Debian-Images mit vier Werkzeugketten. Deployen heisst damit: neues Image ziehen, Container neu starten. Entfernt: deploy.php, entrypoint.sh und .htaccess (Apache-Rest aus der Kirby-Zeit, unter nginx wirkungslos). Der Ordner kirby/ heisst jetzt docker/, weil dort nie Kirby lag. docker-compose.yml zieht das Image aus der Registry. Das Volume-Mount auf /var/www/html ist weg - es haette die ins Image gebackene Seite verdeckt. Lokal geprueft: Build laeuft durch, Container liefert alle Seiten und Assets mit HTTP 200 aus, Intro-Text kommt aus der Markdown-Datei, alle sieben Lampenbilder sind enthalten. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
34 lines
1018 B
Docker
34 lines
1018 B
Docker
# Zweistufiger Build: Hugo erzeugt die Seite, nginx liefert nur noch aus.
|
|
# Das fertige HTML steckt im Image - zur Laufzeit wird nichts mehr gebaut
|
|
# oder aus git geholt.
|
|
|
|
FROM debian:bookworm-slim AS builder
|
|
|
|
ARG HUGO_VERSION=0.147.0
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
curl \
|
|
ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN curl -fsSL "https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.tar.gz" \
|
|
| tar -xz -C /usr/local/bin hugo
|
|
|
|
WORKDIR /src
|
|
COPY . .
|
|
|
|
# themes/gokarna ist ein Submodule und muss im Build-Context liegen.
|
|
# In der CI sorgt actions/checkout mit submodules:recursive dafuer.
|
|
RUN test -f themes/gokarna/theme.toml \
|
|
|| { echo "FEHLER: themes/gokarna fehlt - Submodule nicht ausgecheckt"; exit 1; }
|
|
|
|
RUN hugo --minify --destination /public
|
|
|
|
|
|
FROM nginx:1.27-alpine
|
|
|
|
COPY docker/nginx.conf /etc/nginx/conf.d/default.conf
|
|
COPY --from=builder /public /usr/share/nginx/html
|
|
|
|
EXPOSE 80
|