Files
portfolio-generator-stack/docker-compose.yml
Valentin Le Moign 48b7f97954 Stack d'orchestration Figures Libres (Docker Compose)
Câble ensemble le générateur (dépôt generator/) et le CMS Grav d'exemple
(dépôt grav-reference/, monté :ro), tous deux clonés côte à côte et non
versionnés ici. Contient : docker-compose dev + surcouche prod (rsync/SSH),
image Grav (docker/grav), doc de câblage.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 18:38:04 +02:00

47 lines
1.7 KiB
YAML

services:
# Instance Grav de référence (site "Figures Libres") servant de source de
# contenu pour le développement du générateur de portfolios.
# Ce n'est PAS l'app à développer : c'est le CMS d'exemple, en lecture.
grav-reference:
build:
context: ./docker/grav
args:
PUID: "1000"
PGID: "1000"
container_name: figureslibres-grav-ref
restart: unless-stopped
ports:
- "8089:80"
volumes:
- ./grav-reference:/var/www/html
# Générateur de portfolios PDF (app Nuxt) — voir docs/spec-generateur-portfolios.md.
# Tout tourne dans ce conteneur : Node, build Nuxt, Playwright/Chromium, Ghostscript.
generator:
build:
# L'app est un dépôt autonome cloné dans ./generator (Dockerfile inclus).
context: ./generator
image: figureslibres-portfolio-generator
container_name: figureslibres-portfolio-generator
restart: unless-stopped
user: "1000:1000"
working_dir: /app
command: npm run dev
environment:
HOME: /tmp
NUXT_SESSION_SECRET: ${SESSION_SECRET:-dev-secret-figures-libres}
NUXT_PORTFOLIO_PASSWORD: ${PORTFOLIO_PASSWORD:-figureslibres}
NUXT_INTERNAL_TOKEN: ${INTERNAL_TOKEN:-dev-internal-token}
NUXT_CONTENT_SOURCE: ${CONTENT_SOURCE:-dev}
NUXT_CONTENT_DIR: /content/02.projets
NUXT_DATA_DIR: /app/data
# Mode prod (voir docker-compose.prod.yml) : synchro rsync/SSH
NUXT_SYNC_REMOTE: ${SYNC_REMOTE:-}
NUXT_SYNC_SSH_KEY: ${SYNC_SSH_KEY:-}
ports:
- "8091:3000"
volumes:
- ./generator:/app
# Contenu Grav monté en LECTURE SEULE (contrainte ferme, §18).
- ./grav-reference/user/pages/02.projets:/content/02.projets:ro