version: '3.8' services: web: environment: - FLASK_DEBUG=true - DB_HOST=db - DB_USER=${DB_USER:-liaowang} - DB_PASSWORD=${DB_PASSWORD:-liaowang_secret} - DB_NAME=${DB_NAME:-liaowang_db} volumes: # 开发模式:挂载代码实现热重载 - .:/app - /app/venv depends_on: db: condition: service_healthy # 开发模式不需要健康检查 healthcheck: disable: true db: image: postgres:16-alpine container_name: liaowang-db environment: POSTGRES_DB: ${DB_NAME:-liaowang_db} POSTGRES_USER: ${DB_USER:-liaowang} POSTGRES_PASSWORD: ${DB_PASSWORD:-liaowang_secret} ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-liaowang}"] interval: 10s timeout: 5s retries: 5 volumes: postgres_data: