Files
Scoring-System/docker-compose.yml
爽哒哒 8ca161f8b0
All checks were successful
Deploy to Server / deploy (push) Successful in 1m7s
fix: 支持生产环境外部数据库 6.6.6.66,移除本地 PostgreSQL 容器
2026-03-19 00:51:05 +08:00

86 lines
2.3 KiB
YAML

version: '3.8'
services:
# 后端服务 (使用外部数据库,不需要 PostgreSQL 容器)
scoring-backend:
build:
context: ./backend
dockerfile: Dockerfile
container_name: cywl-scoring-backend
restart: always
volumes:
- ./backend/media:/app/media
- ./backend/static:/app/static
ports:
- "8876:8876"
environment:
- DEBUG=False
- SECRET_KEY=${SECRET_KEY:-your-secret-key-change-this}
- DB_NAME=${DB_NAME:-market}
- DB_USER=${DB_USER:-market}
- DB_PASSWORD=${DB_PASSWORD:-123market}
- DB_HOST=${DB_HOST:-6.6.6.66}
- DB_PORT=${DB_PORT:-5432}
- WECHAT_APPID=${WECHAT_APPID}
- WECHAT_SECRET=${WECHAT_SECRET}
- WECHAT_MCHID=${WECHAT_MCHID}
- WECHAT_API_KEY=${WECHAT_API_KEY}
- ALIYUN_ACCESS_KEY_ID=${ALIYUN_ACCESS_KEY_ID}
- ALIYUN_ACCESS_KEY_SECRET=${ALIYUN_ACCESS_KEY_SECRET}
- ALIYUN_OSS_ENDPOINT=${ALIYUN_OSS_ENDPOINT}
- ALIYUN_OSS_BUCKET_NAME=${ALIYUN_OSS_BUCKET_NAME}
- ALIYUN_TINGWU_APP_KEY=${ALIYUN_TINGWU_APP_KEY}
- DASHSCOPE_API_KEY=${DASHSCOPE_API_KEY}
networks:
- scoring_network
healthcheck:
test: ["CMD", "python", "-c", "import requests; requests.get('http://localhost:8876/api/health/')"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
# 前端服务 (Nginx)
scoring-frontend:
build:
context: ./frontend
dockerfile: Dockerfile
args:
- VITE_API_URL=/api
container_name: cywl-scoring-frontend
restart: always
ports:
- "80:80"
depends_on:
scoring-backend:
condition: service_healthy
networks:
- scoring_network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/health"]
interval: 30s
timeout: 10s
retries: 3
# Nginx 反向代理 (可选,用于负载均衡和 SSL)
scoring-nginx:
image: nginx:alpine
container_name: cywl-scoring-nginx
restart: always
ports:
- "443:443"
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./nginx/ssl:/etc/nginx/ssl:ro
depends_on:
- scoring-frontend
- scoring-backend
networks:
- scoring_network
profiles:
- ssl # 只在需要 SSL 时启动
networks:
scoring_network:
driver: bridge