Image in der CI bauen statt zur Laufzeit, Site ins Image backen
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>
This commit is contained in:
2026-08-31 00:01:17 +02:00
parent 266333069b
commit 30d15cd680
9 changed files with 103 additions and 202 deletions

View File

@@ -1,16 +1,10 @@
version: '3.8'
services:
robbis-space:
build:
context: ./kirby
dockerfile: Dockerfile
image: robbis-space
# Fertiges Image aus der Gitea-Registry. Die Seite ist beim Build
# hineingebacken - kein git pull, kein Hugo-Lauf zur Laufzeit.
# Deployen heisst: docker compose pull && docker compose up -d
image: ${ROBBIS_IMAGE:-gitea.mindboost.team/rorapp/robbis.space:latest}
container_name: robbis-space
volumes:
- /home/kirbyuser/robbis-space:/var/www/html:rw # Persistente Daten
environment:
- DEPLOY_SECRET=dc2d9b0af4849284a0cb396d462aa1853df0c16fec45c5c859d6b97874ea8db4
restart: unless-stopped
networks:
- proxy
@@ -24,12 +18,12 @@ services:
- "traefik.http.routers.robbis-space.entrypoints=websecure"
- "traefik.http.routers.robbis-space.tls=true"
- "traefik.http.services.robbis-space.loadbalancer.server.port=80"
# HTTP-Router (Port 80)
# HTTP-Router (Port 80) mit Weiterleitung auf HTTPS
- "traefik.http.routers.robbis-space-http.rule=Host(`robbis.space`)"
- "traefik.http.routers.robbis-space-http.entrypoints=web"
- "traefik.http.routers.robbis-space-http.middlewares=traefik-https-redirect"
- "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https"
# Service-Port (nginx läuft auf Port 80 im Container)
networks:
proxy:
external: true