Files
KCGL/docker-compose.prod.yml

77 lines
2.6 KiB
YAML
Raw Normal View History

version: '3.8'
services:
2026-05-22 13:12:28 +08:00
# --- 数据库 (已修改为自带 pgvector 的镜像) ---
db:
2026-05-22 13:12:28 +08:00
image: pgvector/pgvector:pg15
container_name: inventory_db_prod
restart: always
environment:
POSTGRES_USER: prod_user
POSTGRES_PASSWORD: StrongPassword123!
POSTGRES_DB: inventory_system
volumes:
2026-05-22 13:12:28 +08:00
# 数据卷保持不变,你的历史数据不会丢失!
- ./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
2026-05-22 13:12:28 +08:00
# --- 前端 (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