2026-01-27 15:50:23 +08:00
|
|
|
|
version: '3.8'
|
|
|
|
|
|
|
|
|
|
|
|
services:
|
|
|
|
|
|
# --- 数据库服务 ---
|
|
|
|
|
|
db:
|
|
|
|
|
|
image: postgres:15-alpine
|
|
|
|
|
|
container_name: inventory_db
|
|
|
|
|
|
restart: always
|
|
|
|
|
|
environment:
|
|
|
|
|
|
POSTGRES_USER: test
|
|
|
|
|
|
POSTGRES_PASSWORD: 1234
|
|
|
|
|
|
POSTGRES_DB: inventory_system
|
|
|
|
|
|
volumes:
|
|
|
|
|
|
# 数据持久化
|
|
|
|
|
|
- ./pgdata_docker:/var/lib/postgresql/data
|
|
|
|
|
|
ports:
|
|
|
|
|
|
- "5434:5432"
|
|
|
|
|
|
|
|
|
|
|
|
# --- 后端 Flask 服务 ---
|
|
|
|
|
|
backend:
|
|
|
|
|
|
build:
|
2026-02-03 11:16:12 +08:00
|
|
|
|
context: ./inventory-backend # 指向你的新后端目录
|
2026-01-27 15:50:23 +08:00
|
|
|
|
container_name: inventory_api
|
|
|
|
|
|
restart: always
|
|
|
|
|
|
ports:
|
|
|
|
|
|
- "8000:8000"
|
|
|
|
|
|
volumes:
|
|
|
|
|
|
- ./inventory-backend:/app # 挂载代码,实现热更新
|
2026-02-03 11:16:12 +08:00
|
|
|
|
# 【核心修改】显式挂载 uploads 目录,确保图片持久化且宿主机可见
|
|
|
|
|
|
- ./inventory-backend/uploads:/app/uploads
|
2026-01-27 15:50:23 +08:00
|
|
|
|
command: gunicorn -c gunicorn.conf.py run:app --reload
|
|
|
|
|
|
environment:
|
|
|
|
|
|
# Host 必须写 'db'
|
|
|
|
|
|
DATABASE_URL: postgresql://test:1234@db:5432/inventory_system
|
|
|
|
|
|
depends_on:
|
|
|
|
|
|
- db
|
|
|
|
|
|
|
2026-02-03 11:16:12 +08:00
|
|
|
|
# --- 前端 Vue 开发服务 ---
|
2026-01-27 15:50:23 +08:00
|
|
|
|
frontend:
|
|
|
|
|
|
build:
|
|
|
|
|
|
context: ./inventory-web
|
|
|
|
|
|
container_name: inventory_ui
|
|
|
|
|
|
restart: always
|
2026-02-03 11:16:12 +08:00
|
|
|
|
# 把本地代码挂载进去,实现“热更新”
|
2026-01-27 15:50:23 +08:00
|
|
|
|
volumes:
|
|
|
|
|
|
- ./inventory-web:/app
|
|
|
|
|
|
- /app/node_modules # 排除 node_modules,防止冲突
|
2026-02-03 11:16:12 +08:00
|
|
|
|
# 开发模式端口通常是 5173
|
2026-01-27 15:50:23 +08:00
|
|
|
|
ports:
|
|
|
|
|
|
- "5173:5173"
|
|
|
|
|
|
depends_on:
|
|
|
|
|
|
- backend
|