version: '3.8' services: postgres: image: postgres:17-alpine container_name: nest-grpc-postgres environment: POSTGRES_USER: user POSTGRES_PASSWORD: password POSTGRES_DB: myapp ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data networks: - app-network healthcheck: test: ["CMD-SHELL", "pg_isready -U user -d myapp"] interval: 10s timeout: 5s retries: 5 app: build: . container_name: nest-grpc-app environment: NODE_ENV: production DATABASE_URL: "postgresql://user:password@postgres:5432/myapp?schema=public" WEB_HOST: 0.0.0.0 WEB_PORT: 3000 GRPC_HOST: 0.0.0.0 GRPC_PORT: 5000 ports: - "3000:3000" # REST API - "5000:5000" # gRPC depends_on: postgres: condition: service_healthy networks: - app-network command: > sh -c " npx prisma migrate deploy && node dist/main-hybrid.js " volumes: postgres_data: networks: app-network: driver: bridge