Docker Compose : comment avoir un environnement dev et prod différents ?
posée 2 months ago508 vuesfr
5
En dev je veux le rechargement à chaud et un volume sur le code. En prod, l'image compilée sans volume. Je duplique tout mon docker-compose.yml ?
Diagnostic IA
Généré par IA. Ce n'est pas une réponse — la communauté ci-dessous le confirme ou le corrige. Vérifiez toujours avant de vous y fier.
posée 2 months ago
Samuel Joseph 2.7k
1 réponse
3
✓✓ Réponse acceptée
Non : utilise un fichier de base et des surcharges. Compose fusionne automatiquement compose.yaml et compose.override.yaml :
# compose.yaml : commun (prod)
services:
app:
build: .
env_file: .env
ports: ["3000:3000"]
# compose.override.yaml : dev, chargé automatiquement en local
services:
app:
build:
target: dev
command: npm run dev
volumes:
- ./:/app
- /app/node_modules # garde les node_modules du conteneur
En production, on ne charge que la base (ou une surcharge prod explicite) :
docker compose -f compose.yaml -f compose.prod.yaml up -d
Pour des services optionnels (pgAdmin, mailpit…), utilise les profiles : profiles: ["tools"], puis docker compose --profile tools up.
Connectez-vous pour dire si ça a marché.
answered 2 months ago
David Charles 2.9k
Sign in and verify your email to post an answer.