82 lines
2.5 KiB
YAML
82 lines
2.5 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://172.16.0.198:8010","https://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
|
|
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"
|
|
depends_on:
|
|
- backend
|
|
|
|
networks:
|
|
mom_net:
|
|
external: true
|
|
name: inventory-app_default
|
|
|
|
volumes:
|
|
track_pgdata_prod:
|
|
name: track_pgdata_prod
|