2026-09-21 15:56:52 +08:00
|
|
|
|
# ============================================================
|
2026-09-21 16:10:52 +08:00
|
|
|
|
# LICA 生产流转管理系统 — 独立实例(与 IRIS 版同机共存)
|
2026-09-21 15:56:52 +08:00
|
|
|
|
# 启动: docker compose up -d --build
|
|
|
|
|
|
# 停止: docker compose down
|
|
|
|
|
|
# 日志: docker compose logs -f
|
2026-09-21 16:10:52 +08:00
|
|
|
|
#
|
|
|
|
|
|
# ⚠️ 首次部署必须先跑数据库迁移,否则业务接口全部 500:
|
|
|
|
|
|
# docker compose exec lica_backend python -m alembic upgrade head
|
2026-09-21 15:56:52 +08:00
|
|
|
|
# ============================================================
|
|
|
|
|
|
|
2026-09-21 16:10:52 +08:00
|
|
|
|
name: track-lica
|
|
|
|
|
|
|
2026-09-21 15:56:52 +08:00
|
|
|
|
services:
|
|
|
|
|
|
# ============================================================
|
2026-09-21 16:10:52 +08:00
|
|
|
|
# PostgreSQL 15 + pgvector — LICA 独立库
|
2026-09-21 15:56:52 +08:00
|
|
|
|
# ============================================================
|
|
|
|
|
|
db:
|
|
|
|
|
|
image: pgvector/pgvector:pg15
|
2026-09-21 16:10:52 +08:00
|
|
|
|
container_name: lica_db
|
2026-09-21 15:56:52 +08:00
|
|
|
|
restart: unless-stopped
|
|
|
|
|
|
environment:
|
2026-09-21 16:10:52 +08:00
|
|
|
|
POSTGRES_USER: lica
|
|
|
|
|
|
POSTGRES_PASSWORD: bc7e44ba7aa424b5a1d95a53dec824fc
|
|
|
|
|
|
POSTGRES_DB: lica_production
|
2026-09-21 15:56:52 +08:00
|
|
|
|
ports:
|
2026-09-21 16:10:52 +08:00
|
|
|
|
- "8032:5432"
|
2026-09-21 15:56:52 +08:00
|
|
|
|
volumes:
|
2026-09-21 16:10:52 +08:00
|
|
|
|
# ⚠️ 绝不能与 IRIS 的 track_pgdata 共用,否则两个部门写同一个库
|
|
|
|
|
|
- lica_pgdata:/var/lib/postgresql/data
|
2026-09-21 15:56:52 +08:00
|
|
|
|
healthcheck:
|
2026-09-21 16:10:52 +08:00
|
|
|
|
test: ["CMD-SHELL", "pg_isready -U lica -d lica_production"]
|
2026-09-21 15:56:52 +08:00
|
|
|
|
interval: 10s
|
|
|
|
|
|
timeout: 5s
|
|
|
|
|
|
retries: 5
|
|
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
|
|
# FastAPI 后端 — --reload 热更新
|
2026-09-21 16:10:52 +08:00
|
|
|
|
# 服务名用 lica_backend 而非 backend:服务名会作为网络别名注册到
|
|
|
|
|
|
# projects_default,与 IRIS 实例的 backend 重名会导致将来任何一方
|
|
|
|
|
|
# 写 http://backend:8000 时随机打到另一个部门。
|
2026-09-21 15:56:52 +08:00
|
|
|
|
# ============================================================
|
2026-09-21 16:10:52 +08:00
|
|
|
|
lica_backend:
|
2026-09-21 15:56:52 +08:00
|
|
|
|
build:
|
|
|
|
|
|
context: ./backend
|
|
|
|
|
|
dockerfile: Dockerfile.dev
|
2026-09-21 16:10:52 +08:00
|
|
|
|
container_name: lica_backend
|
2026-09-21 15:56:52 +08:00
|
|
|
|
restart: unless-stopped
|
|
|
|
|
|
environment:
|
2026-09-21 16:10:52 +08:00
|
|
|
|
# ⚠️ 主机名必须是 lica_db,绝不能写 db ——
|
|
|
|
|
|
# MOM 的 compose 服务名就叫 db,在 projects_default 网络上
|
|
|
|
|
|
# 会把本后端解析到 MOM 生产库并写入。
|
|
|
|
|
|
DATABASE_URL: postgresql+asyncpg://lica:bc7e44ba7aa424b5a1d95a53dec824fc@lica_db:5432/lica_production
|
|
|
|
|
|
# ⚠️ 必须与 IRIS 不同:get_current_user 只验签名不查库,
|
|
|
|
|
|
# 两边共用密钥则 IRIS 签发的 token 可直接访问 LICA 接口。
|
|
|
|
|
|
SECRET_KEY: aQy1zyEJY50OJlYrZ2OkNgQN3N46F4bvjYVdva0y4N3wpfaZotf9NKBTZ0CTDeLD
|
2026-09-21 15:56:52 +08:00
|
|
|
|
DEBUG: "true"
|
2026-09-21 16:10:52 +08:00
|
|
|
|
# ---- 组织隔离(本实例唯一的部门开关,供登录/人员/物料三处 SQL 引用)----
|
|
|
|
|
|
ORG_DEPARTMENT: LICA
|
|
|
|
|
|
MATERIAL_CATEGORY_PREFIX: "LICA/"
|
|
|
|
|
|
# 8030 = PC 管理端;5173/8020 = track-uniapp 的 H5 调试服务
|
2026-09-21 15:56:52 +08:00
|
|
|
|
# (HBuilderX「运行到浏览器」起在 5173,直接跑 vite 按 track-uniapp/vite.config.ts 是 8020)。
|
|
|
|
|
|
# ⚠️ 漏了 uniapp 的来源时,浏览器会在 CORS 预检阶段就掐掉请求,
|
|
|
|
|
|
# 表现是「点登录没反应」,且控制台只报一句笼统的 404/400。
|
2026-09-21 16:10:52 +08:00
|
|
|
|
CORS_ORIGINS: '["http://localhost:8030","https://localhost:8030","http://192.168.9.80:8030","https://192.168.9.80:8030","http://localhost:5173","https://localhost:5173","http://192.168.9.80:5173","https://192.168.9.80:5173","http://localhost:8020","https://localhost:8020","tauri://localhost"]'
|
|
|
|
|
|
# MOM 老系统数据库 — 通过容器名解析(projects_default 网络内 DNS),不要写死 IP
|
2026-09-21 15:56:52 +08:00
|
|
|
|
MOM_DB_HOST: inventory_db
|
|
|
|
|
|
MOM_DB_PORT: "5432"
|
2026-09-21 16:10:52 +08:00
|
|
|
|
# MOM 回调验签 Key — 暂与 IRIS 相同:MOM 侧目前只有单个 TRACK_WEBHOOK_KEY,
|
|
|
|
|
|
# 且回调地址写死指向 IRIS 的 track_backend。待 MOM 支持按部门双推后,
|
|
|
|
|
|
# 再决定是否给 LICA 单独签发。(在此之前 LICA 收不到出入库联动)
|
2026-09-21 15:56:52 +08:00
|
|
|
|
TRACK_WEBHOOK_KEY: 2ce5fedb48fde3fd7e0abf67472a5027b03e9ae6f19cf768
|
|
|
|
|
|
ports:
|
2026-09-21 16:10:52 +08:00
|
|
|
|
- "8031:8000"
|
2026-09-21 15:56:52 +08:00
|
|
|
|
volumes:
|
|
|
|
|
|
- ./backend:/app
|
|
|
|
|
|
depends_on:
|
|
|
|
|
|
db:
|
|
|
|
|
|
condition: service_healthy
|
|
|
|
|
|
networks:
|
|
|
|
|
|
- default
|
|
|
|
|
|
- mom_net
|
|
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
|
|
# Vite + React 前端 — HMR 热更新
|
|
|
|
|
|
# ============================================================
|
|
|
|
|
|
frontend:
|
|
|
|
|
|
build:
|
|
|
|
|
|
context: ./frontend
|
|
|
|
|
|
dockerfile: Dockerfile.dev
|
2026-09-21 16:10:52 +08:00
|
|
|
|
container_name: lica_frontend
|
2026-09-21 15:56:52 +08:00
|
|
|
|
restart: unless-stopped
|
|
|
|
|
|
environment:
|
|
|
|
|
|
VITE_API_BASE_URL: /api/v1
|
|
|
|
|
|
ports:
|
2026-09-21 16:10:52 +08:00
|
|
|
|
- "8030:1420"
|
2026-09-21 15:56:52 +08:00
|
|
|
|
volumes:
|
|
|
|
|
|
- ./frontend:/app
|
|
|
|
|
|
- /app/node_modules # 匿名卷,不覆盖容器里的 node_modules
|
|
|
|
|
|
depends_on:
|
2026-09-21 16:10:52 +08:00
|
|
|
|
- lica_backend
|
2026-09-21 15:56:52 +08:00
|
|
|
|
|
|
|
|
|
|
networks:
|
|
|
|
|
|
mom_net:
|
|
|
|
|
|
external: true
|
2026-09-21 16:10:52 +08:00
|
|
|
|
name: projects_default # MOM 系统所在网络(IRIS 实例也在此网络上)
|
2026-09-21 15:56:52 +08:00
|
|
|
|
|
|
|
|
|
|
volumes:
|
2026-09-21 16:10:52 +08:00
|
|
|
|
lica_pgdata:
|
|
|
|
|
|
name: lica_pgdata
|