Files
KCGL/docker-compose.prod.yml
yueli d8be963036 deploy: MOM prod Track 地址硬编码,避免被服务器残留 .env 覆盖
- 之前 default 会被 .env 覆盖成 dev 的 track_backend,生产联动失效
- 改为硬编码 track_backend_prod:8000,仅密钥保留可配置
2026-09-01 18:05:27 +08:00

77 lines
2.6 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

version: '3.8'
services:
# --- 数据库 (已修改为自带 pgvector 的镜像) ---
db:
image: pgvector/pgvector:pg15
container_name: inventory_db_prod
restart: always
environment:
POSTGRES_USER: prod_user
POSTGRES_PASSWORD: StrongPassword123!
POSTGRES_DB: inventory_system
volumes:
# 数据卷保持不变,你的历史数据不会丢失!
- ./pgdata_prod:/var/lib/postgresql/data
ports:
- "5432:5432"
# --- 后端 (Flask) (保持不变) ---
backend:
build:
context: ./inventory-backend
container_name: inventory_api_prod
restart: always
expose:
- "8000"
volumes:
- ./uploads_prod:/app/uploads
- ./models_prod:/app/models
command: gunicorn -c gunicorn.conf.py run:app
environment:
DATABASE_URL: postgresql://prod_user:StrongPassword123!@db:5432/inventory_system
MAIL_ENABLED: "true"
MAIL_SERVER: smtp.mxhichina.com
MAIL_PORT: "465"
MAIL_USERNAME: wms@iris-rs.cn
MAIL_PASSWORD: Q7nYyyESWlaThKjx
MAIL_DEFAULT_SENDER: wms@iris-rs.cn
MAIL_USE_SSL: "true"
MAIL_USE_TLS: "false"
# Track 系统联动(扫码入库/出库/Webhook 通知)
# ★ 生产地址硬编码为容器名 track_backend_prod同一服务器 mom_net 网络内互通),
# 避免被服务器上残留的 .env 覆盖成 dev 的 track_backend
TRACK_WEBHOOK_URL: http://track_backend_prod:8000/api/v1/external/webhooks/mom-inbound
TRACK_WEBHOOK_KEY: ${TRACK_WEBHOOK_KEY:-2ce5fedb48fde3fd7e0abf67472a5027b03e9ae6f19cf768}
TRACK_API_URL: http://track_backend_prod:8000
TRACK_OUTBOUND_WEBHOOK_URL: http://track_backend_prod:8000/api/v1/external/webhooks/mom-outbound
depends_on:
- db
# 加入 mom_net 外部网络,与 Track 生产容器互通
networks:
- default
- mom_net
# --- 前端 (Nginx + Vue) (包含 HTTPS 配置) ---
frontend:
build:
context: ./inventory-web
dockerfile: Dockerfile.prod
container_name: inventory_ui_prod
restart: always
ports:
- "80:80" # HTTP 端口
- "443:443" # 【新增】HTTPS 端口
volumes:
# 【新增】挂载 SSL 证书
# 左边是服务器路径 ./ssl/nginx.crt
# 右边是容器内路径 /etc/nginx/ssl/nginx.crt (必须和报错日志里的一致)
- ./ssl/nginx.crt:/etc/nginx/ssl/nginx.crt
- ./ssl/nginx.key:/etc/nginx/ssl/nginx.key
depends_on:
- backend
networks:
# 与 Track 生产容器共享的外部网络Track prod 的 mom_net 也叫这个名字)
mom_net:
external: true
name: inventory-app_default