Files
wecom_it_smart_desk/deploy-server/docker-compose-green.yml

95 lines
3.4 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# =============================================================================
# 企微智能IT支持服务台 — Docker Compose (Green 环境)
# =============================================================================
# 用途:蓝绿部署之 Green 环境
# 端口:后端 5002, Nginx 5080/5443
# 数据库/Redis:与 Blue 共用(通过 external_links
# =============================================================================
services:
# --------------------------------------------------------------------------
# FastAPI 后端 — Green 环境
# --------------------------------------------------------------------------
backend:
build:
context: ./backend
dockerfile: Dockerfile
image: wecom-it-desk-backend:green
container_name: wecom_it_backend_green
restart: unless-stopped
ports:
- "5002:8000"
external_links:
- wecom_it_postgres:postgres
- wecom_it_redis:redis
environment:
- WECOM_CORP_ID=${WECOM_CORP_ID}
- WECOM_AGENT_ID=${WECOM_AGENT_ID}
- WECOM_SECRET=${WECOM_SECRET}
- WECOM_TOKEN=${WECOM_TOKEN}
- WECOM_ENCODING_AES_KEY=${WECOM_ENCODING_AES_KEY}
# 使用 Blue 的数据库和 Redis(通过 external_links 访问)
- DATABASE_URL=postgresql://${POSTGRES_USER:-wecom}:${POSTGRES_PASSWORD:-wecom_secret_2026}@postgres:5432/${POSTGRES_DB:-wecom_it_desk}
- REDIS_URL=redis://:${REDIS_PASSWORD:-R3d!s@2026#Secure}@redis:6379/0
- CORS_ORIGINS=${CORS_ORIGINS:-http://itsupport.servyou.com.cn}
- DIFY_API_URL=${DIFY_API_URL}
- DIFY_API_KEY=${DIFY_API_KEY}
- DIFY_TIMEOUT=${DIFY_TIMEOUT:-30}
- DIFY_WINGMAN_API_URL=${DIFY_WINGMAN_API_URL:-}
- DIFY_WINGMAN_API_KEY=${DIFY_WINGMAN_API_KEY:-}
- DIFY_WINGMAN_TIMEOUT=${DIFY_WINGMAN_TIMEOUT:-30}
- MOCK_LOGIN_ENABLED=${MOCK_LOGIN_ENABLED:-false}
- WECOM_SSO_ENABLED=${WECOM_SSO_ENABLED:-false}
- WECOM_SSO_CALLBACK_BASE=${WECOM_SSO_CALLBACK_BASE:-https://itsupport.servyou.com.cn}
- BACKEND_HOST=0.0.0.0
- BACKEND_PORT=8000
command: ["/bin/sh", "-c", "echo '>>> Green Environment' && uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 2"]
networks:
- it-desk-internal
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:8000/health || exit 1"]
interval: 15s
timeout: 5s
retries: 3
start_period: 30s
logging:
driver: "json-file"
options:
max-size: "20m"
max-file: "5"
# --------------------------------------------------------------------------
# Nginx — Green 环境反向代理
# --------------------------------------------------------------------------
nginx:
image: nginx:1.27-alpine
container_name: wecom_it_nginx_green
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./nginx/ssl:/etc/nginx/ssl:ro
- ./html/itdesk:/usr/share/nginx/html/itdesk:ro
- ./html/itagent:/usr/share/nginx/html/itagent:ro
- ./html/itadmin:/usr/share/nginx/html/itadmin:ro
- ./html/itportal:/usr/share/nginx/html/itportal:ro
environment:
- NGINX_HOST=localhost
- NGINX_PORT=80
depends_on:
- backend
networks:
- it-desk-internal
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
networks:
it-desk-internal:
name: wecom-it-desk_it-desk-internal
external: true