# ============================================================ # 生产流转管理系统 — 生产环境 Docker Compose # 服务器: 172.16.0.198 # 部署路径: /opt/Track # 启动: docker compose -f docker-compose.prod.yml up -d --build # ============================================================ services: # ============================================================ # PostgreSQL 15 + pgvector # ============================================================ db: image: pgvector/pgvector:pg15 container_name: track_db_prod restart: always environment: POSTGRES_USER: track POSTGRES_PASSWORD: track_prod_2026 POSTGRES_DB: track_production ports: - "8012:5432" volumes: - track_pgdata_prod:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U track -d track_production"] interval: 10s timeout: 5s retries: 5 # ============================================================ # FastAPI 后端 — gunicorn + uvicorn (生产模式,无热更新) # ============================================================ backend: build: context: ./backend dockerfile: Dockerfile.dev container_name: track_backend_prod restart: always environment: DATABASE_URL: postgresql+asyncpg://track:track_prod_2026@track_db_prod:5432/track_production SECRET_KEY: change-me-in-production-please DEBUG: "false" CORS_ORIGINS: '["http://track.iris-rs.cn","http://track_back.iris-rs.cn","http://172.16.0.198:8010","http://172.16.0.198","tauri://localhost"]' # 🚀 MOM 老系统数据库 — 用户登录验证 + 用户名单来源 MOM_DB_HOST: inventory_db_prod MOM_DB_PORT: "5432" ports: - "8011:8000" volumes: - ./backend:/app - ./uploads_prod:/app/uploads # 👈 新增这一行!强制隔离上传目录 command: > sh -c "uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 4 --log-level info" depends_on: db: condition: service_healthy networks: - default - mom_net # ============================================================ # React 前端 — Nginx 静态文件服务 (生产模式) # ============================================================ frontend: build: context: ./frontend dockerfile: Dockerfile.prod container_name: track_frontend_prod restart: always ports: - "8010:80" volumes: - /opt/Track/updates:/usr/share/nginx/html/updates depends_on: - backend networks: mom_net: external: true name: inventory-app_default volumes: track_pgdata_prod: name: track_pgdata_prod