87 lines
2.8 KiB
YAML
87 lines
2.8 KiB
YAML
# ============================================================
|
||
# 生产流转管理系统 — 生产环境 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"
|
||
# 🚀 MOM 仓储系统 Webhook 验签 Key(与 MOM 侧 TRACK_WEBHOOK_KEY 一致,入库/出库回调鉴权必需)
|
||
TRACK_WEBHOOK_KEY: 2ce5fedb48fde3fd7e0abf67472a5027b03e9ae6f19cf768
|
||
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
|