version: '3.8' services: mining-system: build: context: . dockerfile: Dockerfile container_name: mining-system restart: unless-stopped ports: - "5000:5000" env_file: - .env environment: - DB_HOST=${DB_HOST} - DB_PORT=${DB_PORT} - DB_USER=${DB_USER} - DB_PASSWORD=${DB_PASSWORD} - DB_NAME=${DB_NAME} - DEFAULT_AI_MODEL=${DEFAULT_AI_MODEL:-qwen} - SECRET_KEY=${SECRET_KEY:-mining-system-secret-key-2024} volumes: # 标签名称目录映射 - ./name:/name # 日志目录 - ./logs:/app/logs healthcheck: test: ["CMD", "curl", "-f", "http://localhost:5000/"] interval: 30s timeout: 5s retries: 3 start_period: 15s networks: - mining-network logging: driver: json-file options: max-size: "10m" max-file: "3" # Nginx反向代理 nginx: image: nginx:alpine container_name: mining-nginx restart: unless-stopped ports: - "80:80" - "443:443" volumes: - ./nginx-docker.conf:/etc/nginx/conf.d/default.conf:ro # SSL证书(如使用HTTPS,取消注释) # - ./ssl:/etc/nginx/ssl:ro depends_on: mining-system: condition: service_healthy networks: - mining-network logging: driver: json-file options: max-size: "10m" max-file: "3" networks: mining-network: driver: bridge