Ctrl K
ComunidadGuías…

docker-compose.dev.yml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
services:
  app:
    build:
      context: .
      target: dev
    container_name: physalis-dev
    restart: unless-stopped
    env_file: .env
    environment:
      DATABASE_URL: postgresql://physalis:${DB_PASSWORD}@db:5432/physalis
      PORT: "3000"
      NODE_ENV: development
      # Polling requis si Docker Desktop WSL2 ne propage pas les événements
      # inotify — sans ça, Next.js ne détecte pas les changements de fichiers.
      WATCHPACK_POLLING: "true"
    command: >
      sh -c "node ./node_modules/prisma/build/index.js migrate deploy &&
             node ./scripts/bootstrap-admin.mjs &&
             npm run dev"
    ports:
      - "${PORT:-3000}:3000"
    volumes:
      # Source code monté en live — chaque modification déclenche HMR.
      - .:/app
      # node_modules isolé en volume nommé : évite que le bind mount
      # du host (qui n'a pas de node_modules) écrase les packages de l'image.
      - node_modules_dev:/app/node_modules
    depends_on:
      db:
        condition: service_healthy
    networks:
      - internal

  db:
    image: postgres:16-alpine
    container_name: physalis-db-dev
    restart: always
    environment:
      POSTGRES_USER: physalis
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_DB: physalis
    ports:
      - "${DB_PORT:-5432}:5432"
    volumes:
      - pg_data_dev:/var/lib/postgresql/data
    networks:
      - internal
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U physalis"]
      interval: 5s
      retries: 10

volumes:
  pg_data_dev:
  node_modules_dev:

networks:
  internal: