构建:新增完整容器化部署
This commit is contained in:
53
README.md
53
README.md
@@ -11,14 +11,14 @@
|
||||
## 本地启动
|
||||
|
||||
```bash
|
||||
docker compose --profile build-only build agent-runtime
|
||||
docker compose -f docker-compose.yml build agent-runtime
|
||||
docker compose up -d postgres
|
||||
mvn -q -f server/pom.xml spring-boot:run
|
||||
npm --prefix client install
|
||||
npm --prefix client run dev
|
||||
npm --prefix web-ui install
|
||||
npm --prefix web-ui run dev
|
||||
```
|
||||
|
||||
打开 <http://127.0.0.1:5173>,本地默认账号为 `admin / admin123`。
|
||||
本地开发服务器默认使用 Vite 配置的端口。容器化部署固定从 <http://127.0.0.1:5173> 访问。
|
||||
|
||||
模型连接只能在“模型配置”页面新增并持久化到 PostgreSQL;API Key 会使用 `APP_MASTER_KEY`
|
||||
环境变量提供的主密钥加密后保存。`dashscope_key.txt` 仅供百炼知识库使用,不参与模型配置。
|
||||
@@ -29,12 +29,53 @@ npm --prefix client run dev
|
||||
$env:APP_MASTER_KEY = '<使用独立生成的高强度密钥>'
|
||||
```
|
||||
|
||||
## Docker Compose 部署
|
||||
|
||||
部署包含 Nginx 前端、Spring Boot 后端、Agent Runtime 镜像和 PostgreSQL。Agent Runtime
|
||||
不是常驻 API 服务:`agent-runtime` 服务完成镜像构建后会以状态码 0 退出,后端再通过 Docker
|
||||
Socket 为每个 Agent Session 动态创建隔离容器。
|
||||
|
||||
1. 复制环境变量模板并替换其中的三个必填密码/密钥;生产环境建议使用密码管理系统生成随机值。
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
2. 确认 `MANUAGENT_DATA_ROOT` 是 Docker 宿主机上的绝对路径。这个路径会以完全相同的路径挂载到
|
||||
后端容器,供动态 Agent Runtime 继续挂载项目材料、工作目录和产物。Linux 默认值为
|
||||
`/srv/manuagent/data`。
|
||||
|
||||
3. 构建并启动完整服务:
|
||||
|
||||
```bash
|
||||
docker compose -f docker-compose.yml up -d --build
|
||||
docker compose -f docker-compose.yml ps
|
||||
```
|
||||
|
||||
4. 打开 <http://127.0.0.1:5173>,使用 `.env` 中的 `APP_ADMIN_USERNAME` 和
|
||||
`APP_ADMIN_PASSWORD` 登录。查看日志或停止服务:
|
||||
|
||||
```bash
|
||||
docker compose -f docker-compose.yml logs -f backend
|
||||
docker compose -f docker-compose.yml down
|
||||
```
|
||||
|
||||
默认端口映射为 `0.0.0.0:5173:80`。若 Windows 的动态端口排除范围占用了 5173,可仅在本机
|
||||
验证时临时执行 `$env:FRONTEND_PORT = '15173'`;Linux 服务器部署应保留默认的 5173。
|
||||
|
||||
PostgreSQL 数据保存在 `postgres-data` 命名卷中;项目材料、Agent 工作区、快照和生成文件保存在
|
||||
`MANUAGENT_DATA_ROOT`。`docker compose down` 不会删除它们,只有显式增加 `--volumes` 才会删除
|
||||
PostgreSQL 卷。后端挂载 Docker Socket 等价于授予其管理宿主机容器的高权限,应只在受信任的
|
||||
Docker 主机上运行,并限制 5173 端口的网络访问范围。通过 HTTPS 反向代理部署时,请将
|
||||
`SESSION_COOKIE_SECURE` 设为 `true`。
|
||||
|
||||
## 验证
|
||||
|
||||
```bash
|
||||
mvn -q -f server/pom.xml test
|
||||
npm --prefix client run test -- --run
|
||||
npm --prefix client run build
|
||||
npm --prefix web-ui run test
|
||||
npm --prefix web-ui run build
|
||||
docker compose -f docker-compose.yml config --quiet
|
||||
```
|
||||
|
||||
产品、数据库与验收设计见 [docs](docs/)。内置 Skill 与资源由 Flyway 种子迁移写入数据库,无需额外导入文件。
|
||||
|
||||
Reference in New Issue
Block a user