Status : IMPLEMENTEE
Créer un standard de configuration pour automatiser le déploiement de projets GitHub vers PROD.
Chaque projet GitHub contient un fichier conf.prod.gouroubleu.yml qui définit :
# conf.prod.gouroubleu.yml
version: "1.0"
project:
name: "mon-projet"
description: "Description du projet"
# Build
build:
dockerfile: "./Dockerfile" # Chemin vers le Dockerfile
context: "." # Context de build
args: # Build args optionnels
NODE_ENV: "production"
# Orchestration
compose:
file: "./docker-compose.prod.yml" # Ou inline si simple
# Stockage - bind mounts (répertoires) sauf RAM
storage:
# Données persistantes sur NFS (base de données, uploads, etc.)
# Bind mount vers /mnt/stock_36to/data/projects/{project}/data
- type: "nfs"
container_path: "/app/data"
host_path: "data" # Relatif au dossier projet sur NFS
# Fichiers statiques/build sur disque local (rapide)
# Bind mount vers /opt/projects/{project}/static
- type: "local"
container_path: "/app/static"
host_path: "static" # Relatif au dossier projet local
# Cache en RAM (tmpfs) - données jetables, volume Docker OK
- type: "ram"
container_path: "/app/cache"
size: "256m"
# Exposition (pour plus tard: communication avec VM Nginx)
expose:
domain: "mon-projet.gouroubleu.com"
port: 3000
ssl: true
# Repos additionnels nécessaires (sous-modules, dépendances)
repositories:
- url: "git@github.com:gouroubleu/shared-lib.git"
path: "./libs/shared"
branch: "main"
# Hooks (optionnel)
hooks:
pre_deploy: "./scripts/pre-deploy.sh"
post_deploy: "./scripts/post-deploy.sh"
conf.prod.gouroubleu.ymlstoragebuild/mnt/stock_36to/data/
└── projects/
└── {nom-projet}/
├── data/ # Données persistantes NFS
└── ...
/opt/projects/
└── {nom-projet}/
├── repo/ # Code source cloné
├── static/ # Fichiers locaux rapides
└── logs/
nfs, local, ram - ça couvre tes besoins ?Tes retours sur la structure proposée avant de passer à l'implémentation.