| doc_id |
title |
version |
status |
owners |
upstream |
downstream |
updated_at |
| DOC-TA-001 |
运行时拓扑 |
0.1.0 |
reviewed |
|
| ./00-technology-selection.md |
|
| ./01-runtime-components.csv |
| ./02-environments.csv |
|
2026-03-23 |
运行时拓扑
部署架构
flowchart LR
Browser["浏览器<br/>(林然)"] -->|HTTP :80| Nginx["Nginx 容器<br/>静态文件 + 反代"]
Nginx -->|/api/* → :8900| Backend["Python 容器<br/>FastAPI + Uvicorn"]
Backend -->|File I/O| DesignVol["/mnt/designs<br/>(volume mount)"]
Backend -->|File I/O| CodeVol["/mnt/code<br/>(volume mount, Phase 2)"]
Backend -->|JSON R/W| Registry["/data/projects.json<br/>(volume mount)"]
Docker Compose 结构
services:
frontend:
build: ./frontend
ports: ["80:80"]
# Nginx serve 静态文件 + 反代 /api → backend:8900
backend:
build: ./backend
expose: ["8900"]
volumes:
- ${DESIGN_DIRS}:/mnt/designs:rw
- ${CODE_DIRS}:/mnt/code:ro # Phase 2
- dashboard-data:/data
environment:
- REGISTRY_PATH=/data/projects.json
volumes:
dashboard-data:
关键说明
- 前端容器只负责 Nginx,不运行 Node.js
- 后端容器通过 volume 访问宿主机的设计文件和代码目录
- 设计文件 volume 是 rw(编辑功能需要写),代码 volume 是 ro
- projects.json 放在 named volume 中,容器重建不丢失
- 无数据库容器