refactor: réorganiser Dockerfiles et scripts par module

Réorganise la structure Docker pour plus de cohérence dans le monorepo.
Chaque module (backend, docs) a maintenant ses propres Dockerfiles et scripts.

Changements:
- backend/docker/ : Dockerfile (prod) + dev.Dockerfile (hot reload) + init script
- docs/docker/ : mkdocs.Dockerfile + pdf.Dockerfile
- docs/scripts/ : generate-bdd-docs.py + generate-pdf-docs.py
- Déplace docker-compose.yml dans backend/
- Supprime scripts obsolètes (fix-markdown-*.sh, remove-broken-links.sh)
- Déplace .dockerignore à la racine
- Met à jour Makefile avec nouveaux chemins

Organisation finale:
- backend/ : tout ce qui concerne l'API backend
- docs/ : tout ce qui concerne la documentation
- scripts/ : uniquement setup.sh (scripts généraux du projet)
This commit is contained in:
jpgiannetti
2026-02-12 20:41:10 +01:00
parent 35aaa105d0
commit ae2fc3ee6f
14 changed files with 64 additions and 350 deletions

111
backend/docker-compose.yml Normal file
View File

@@ -0,0 +1,111 @@
version: '3.8'
services:
# Backend API
api:
build:
context: .
dockerfile: docker/dev.Dockerfile
ports:
- "8080:8080"
volumes:
- .:/app
- /app/tmp
env_file:
- ./.env
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
zitadel:
condition: service_healthy
networks:
- roadwave-network
# PostgreSQL + PostGIS
postgres:
image: postgis/postgis:16-3.4-alpine
ports:
- "5432:5432"
environment:
POSTGRES_DB: roadwave_dev
POSTGRES_USER: roadwave
POSTGRES_PASSWORD: dev_password
POSTGRES_MULTIPLE_DATABASES: zitadel
volumes:
- postgres_data:/var/lib/postgresql/data
- ./docker/init-multiple-databases.sh:/docker-entrypoint-initdb.d/init-multiple-databases.sh
healthcheck:
test: ["CMD-SHELL", "pg_isready -U roadwave"]
interval: 5s
timeout: 5s
retries: 5
networks:
- roadwave-network
# Redis (caching)
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 5
networks:
- roadwave-network
# Zitadel (authentication)
zitadel:
image: ghcr.io/zitadel/zitadel:latest
ports:
- "8081:8080"
environment:
ZITADEL_DATABASE_POSTGRES_HOST: postgres
ZITADEL_DATABASE_POSTGRES_PORT: 5432
ZITADEL_DATABASE_POSTGRES_DATABASE: zitadel
ZITADEL_DATABASE_POSTGRES_USER: roadwave
ZITADEL_DATABASE_POSTGRES_PASSWORD: dev_password
ZITADEL_DATABASE_POSTGRES_ADMIN_USERNAME: roadwave
ZITADEL_DATABASE_POSTGRES_ADMIN_PASSWORD: dev_password
ZITADEL_EXTERNALSECURE: "false"
ZITADEL_EXTERNALPORT: 8081
ZITADEL_MASTERKEYPATH: /zitadel-masterkey
volumes:
- zitadel_data:/zitadel-masterkey
depends_on:
postgres:
condition: service_healthy
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8080/debug/ready"]
interval: 10s
timeout: 5s
retries: 10
start_period: 30s
networks:
- roadwave-network
# Adminer (database admin)
adminer:
image: adminer:latest
ports:
- "8082:8080"
environment:
ADMINER_DEFAULT_SERVER: postgres
depends_on:
- postgres
networks:
- roadwave-network
volumes:
postgres_data:
redis_data:
zitadel_data:
networks:
roadwave-network:
driver: bridge