# 智能项目定价模型 - Docker Compose 配置 # 遵循瑞小美部署规范 name: pricing-model services: # ============ 前端服务 ============ pricing-frontend: build: context: ./前端应用 dockerfile: Dockerfile container_name: pricing-frontend restart: unless-stopped networks: - pricing_network - ai_strategy_network healthcheck: test: ["CMD", "curl", "-f", "http://localhost/health"] interval: 30s timeout: 10s retries: 3 start_period: 10s logging: driver: "json-file" options: max-size: "10m" max-file: "3" deploy: resources: limits: cpus: '0.5' memory: 256M reservations: cpus: '0.1' memory: 64M # ============ 后端服务 ============ pricing-backend: build: context: ./后端服务 dockerfile: Dockerfile container_name: pricing-backend restart: unless-stopped env_file: - .env environment: - DATABASE_URL=${DATABASE_URL} - PORTAL_CONFIG_API=${PORTAL_CONFIG_API} - APP_ENV=${APP_ENV:-production} - DEBUG=${DEBUG:-false} - SECRET_KEY=${SECRET_KEY} depends_on: pricing-mysql: condition: service_healthy networks: - pricing_network - scrm_network - ai_strategy_network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 30s timeout: 10s retries: 3 start_period: 30s logging: driver: "json-file" options: max-size: "10m" max-file: "3" deploy: resources: limits: cpus: '1' memory: 512M reservations: cpus: '0.25' memory: 128M # ============ 数据库服务 ============ pricing-mysql: image: mysql:8.0.36 container_name: pricing-mysql restart: unless-stopped command: - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci - --default-time-zone=+08:00 environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: pricing_model MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} volumes: - pricing_mysql_data:/var/lib/mysql - ./init.sql:/docker-entrypoint-initdb.d/init.sql:ro networks: - pricing_network healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD}"] interval: 30s timeout: 10s retries: 3 start_period: 60s logging: driver: "json-file" options: max-size: "10m" max-file: "3" deploy: resources: limits: cpus: '1' memory: 1G reservations: cpus: '0.25' memory: 256M # ============ 网络配置 ============ networks: pricing_network: driver: bridge name: pricing_network scrm_network: external: true name: scrm_network ai_strategy_network: external: true name: ai_ai-strategy-network # ============ 数据卷 ============ volumes: pricing_mysql_data: name: pricing_mysql_data