services: postgres: image: postgres:16-alpine container_name: food-market-postgres restart: unless-stopped environment: POSTGRES_DB: food_market POSTGRES_USER: food_market POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-food_market_dev} PGDATA: /var/lib/postgresql/data/pgdata ports: - "5433:5432" volumes: - postgres-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U food_market -d food_market"] interval: 10s timeout: 5s retries: 5 api: image: ghcr.io/nurdotnet/food-market-api:${API_TAG:-latest} container_name: food-market-api restart: unless-stopped depends_on: postgres: condition: service_healthy environment: ASPNETCORE_ENVIRONMENT: Production ConnectionStrings__Default: Host=postgres;Port=5432;Database=food_market;Username=food_market;Password=${POSTGRES_PASSWORD:-food_market_dev} ports: - "8080:8080" volumes: - api-data:/app/App_Data - api-logs:/app/logs web: image: ghcr.io/nurdotnet/food-market-web:${WEB_TAG:-latest} container_name: food-market-web restart: unless-stopped depends_on: - api ports: - "80:80" volumes: postgres-data: name: food-market-postgres-data api-data: name: food-market-api-data api-logs: name: food-market-api-logs