Files
track/docker-compose.prod.yml

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