services: db: image: postgres:16-alpine environment: POSTGRES_DB: visitcount POSTGRES_USER: app POSTGRES_PASSWORD: secret volumes: - db-data:/var/lib/postgresql/data networks: - app-net healthcheck: test: ["CMD-SHELL", "pg_isready -U app -d visitcount"] interval: 5s timeout: 3s retries: 5 app: build: context: ./app dockerfile: Containerfile environment: DB_HOST: db DB_NAME: visitcount DB_USER: app DB_PASSWORD: secret networks: - app-net depends_on: db: condition: service_healthy proxy: image: nginx:1.27-alpine ports: - "8080:80" volumes: - ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro networks: - app-net depends_on: - app volumes: db-data: networks: app-net: