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
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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user