Docker Compose : comment avoir un environnement dev et prod différents ?

poze 2 months ago502 gadefr

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 ?

Dyagnostik IA

Se IA ki fè l. Se pa yon repons — kominote a anba a konfime oswa korije l. Toujou verifye anvan ou fye l.

poze 2 months ago

1 Repons

3
✓
✓ Repons yo aksepte

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.

Konekte pou di lòt moun si li te mache.

answered 2 months ago

Sign in and verify your email to post an answer.