services: app: build: context: . target: dev depends_on: db: condition: service_healthy environment: DATABASE_URL: postgresql://briefing:briefing@db:5432/briefing?schema=public APP_URL: http://localhost:3000 UPLOAD_DIR: /app/storage/uploads UPLOAD_MAX_MB: "25" ports: - "3000:3000" volumes: - .:/app - /app/node_modules - uploads:/app/storage/uploads networks: - briefing db: image: postgres:16 environment: POSTGRES_DB: briefing POSTGRES_USER: briefing POSTGRES_PASSWORD: briefing healthcheck: test: ["CMD-SHELL", "pg_isready -U briefing -d briefing"] interval: 10s timeout: 5s retries: 5 volumes: - pgdata:/var/lib/postgresql/data networks: - briefing volumes: pgdata: uploads: networks: briefing: driver: bridge