Files
SillyTavern_replica/docker-compose.yml

41 lines
1.2 KiB
YAML

version: '3.8'
services:
backend:
build: ./backend
# 启动命令:明确指定 backend.api.route
command: uvicorn backend.api.route:app --host 0.0.0.0 --port 8000 --reload
ports:
- "3001:8000"
volumes:
# 关键点:挂载到 /app/backend
# 这样容器内就是 /app/backend/api/route.py
- ./backend:/app/backend
- ./data:/data
- ./outputs:/outputs
environment:
- PYTHONUNBUFFERED=1
restart: unless-stopped
frontend:
build:
context: ./frontend-react
dockerfile: Dockerfile
ports:
- "3000:5173"
volumes:
# 挂载前端源码,实现代码热更新
- ./frontend-react:/app
# 匿名卷:防止宿主机的 node_modules 覆盖容器内的模块
# (这是前端 Docker 开发的最佳实践,防止因系统差异导致依赖不兼容)
- /app/node_modules
environment:
# 告诉前端后端地址
# 注意:这里使用 localhost 是因为它们都映射到了宿主机
# 在容器内部通信时,前端通过 Vite 代理转发到 http://backend:8000
- VITE_BACKEND_URL=http://localhost:3001
command: npm run dev -- --host 0.0.0.0
depends_on:
- backend
restart: unless-stopped