已合并
docs: add configuration description and Docker container deployment documentation #65
docs: add configuration description and Docker container deployment documentation #65
已合并
陈卉创建于 4月2日
共 2 个文件变更+209-4
@@ -1,2 +1,135 @@
1-介绍 Runtime 涉及的配置文件、环境变量,说明各配置项的作用以及建议的修改方式。1+本文档主要介绍 Runtime 服务部署过程中,核心配置文件 server/.env 的作用、包含的所有环境变量,详细说明各配置项的功能用途,并提供针对性的修改建议,帮助相关运维、开发人员正确配置环境,确保 Runtime 服务(含低码Agent、runtime-server)正常运行。
2 2 
3+该配置文件为 Runtime 服务的核心环境配置文件,所有环境变量均为服务启动、运行的必要参数,修改时需严格遵循配置规范,避免因参数错误导致服务启动失败或运行异常。以下按配置项分类,逐一说明其作用及修改建议。
4+ 
5+# 数据库相关配置
6+ 
7+## 数据库通用配置
8+ 
9+## DB_TYPE(数据库类型)
10+ 
11+**作用**:定义 Runtime 服务所使用的数据库类型,仅支持 mysql、sqlite 两个可选值,不可填写其他类型,默认配置为 sqlite。
12+ 
13+**修改建议**:根据实际部署的数据库类型修改,若使用 SQLite 数据库,将值改为 sqlite;若使用 MySQL 数据库,将值改为 mysql, 并确保确保数据库服务已正常启动,且与后续数据库配置参数匹配。
14+ 
15+## MySQL数据库专用配置
16+ 
17+### DB_HOST(MySQL数据库主机地址)
18+ 
19+**作用**:指定MySQL数据库服务所在的主机IP地址或域名,Runtime 服务通过该地址连接数据库。
20+ 
21+**修改建议**:若MySQL数据库部署在远程服务器,需将值改为远程数据库的公网IP地址;若数据库与 Runtime 服务部署在同一服务器,可改为 127.0.0.1或localhost。修改后需确保该地址可被 Runtime 服务所在服务器访问,无防火墙、端口限制。
22+ 
23+### DB_PORT(MySQL数据库端口)
24+ 
25+**作用**:指定MySQL数据库服务的监听端口。
26+ 
27+**修改建议**:修改其为MySQL数据库服务的实际监听端口;若使用 SQLite 数据库,该配置项不生效,但也不影响服务运行,但建议注释说明,避免混淆。
28+ 
29+### DB_USER(MySQL数据库登录用户名)
30+ 
31+**作用**:指定连接MySQL数据库的用户名,需具备该数据库的读写、创建表等权限,确保 Runtime 服务能正常操作数据库。
32+ 
33+**修改建议**:生产环境中不建议使用 root 账号,建议创建专用数据库账号(如 jiuwen_runtime_user),并分配最小必要权限(仅对 DB_NAME 指定的数据库有操作权限),修改该值为创建的专用账号,提升安全性。
34+ 
35+### DB_PASSWORD(MySQL数据库登录密码)
36+ 
37+**作用**:对应 DB_USER 的登录密码,用于验证数据库连接权限,是数据库安全的核心参数。
38+ 
39+**修改建议**:生产环境必须修改,建议设置复杂密码(包含大小写字母、数字、特殊符号,长度不小于8位),避免使用简单密码(如 123456、admin);密码修改后需同步告知相关运维人员,妥善保管,避免泄露。
40+ 
41+### DB_NAME(MySQL目标数据库名称)
42+ 
43+**作用**:指定 Runtime 服务需要连接、操作的数据库名称,服务启动时会自动校验该数据库是否存在(不会自动创建, 请自行提前创建)。
44+ 
45+**修改建议**:可根据实际业务需求修改(如 prod_jiuwen_runtime 用于生产环境,test_jiuwen_runtime 用于测试环境)。修改后需确保该数据库已提前创建(服务不支持自动创建),且 DB_USER 账号对该数据库有对应操作权限。
46+ 
47+# 服务部署相关配置
48+ 
49+此类配置用于指定 Runtime 服务、低码Agent的部署地址、镜像信息及部署目录,直接影响服务的部署效果和运行稳定性。
50+ 
51+## IP(服务主机IP地址)
52+ 
53+**作用**:指定 agent-runtime-server 与低码 Agent 组件共同所在的宿主机网络地址。
54+ 
55+**修改建议**:必选项,无默认值。 建议填写agent-runtime-server 与低码 Agent 服务实际部署的服务器的有效公网 IP 地址。
56+ 
57+## LOWCODE_IMAGE(低码Agent容器镜像地址)
58+ 
59+**作用**:指定低码Agent 容器的镜像地址,当 DEPLOY_TYPE 为 docker 或 k8s 时,服务会根据该地址拉取镜像并启动低码Agent 容器。
60+ 
61+**修改建议**:必选项,无默认值。
62+ 
63+## DEPLOY_DIR(部署目录)
64+ 
65+**作用**:指定 Runtime 服务部署过程中产生的所有文件(如配置备份、临时文件等)的存放目录,确保部署文件有序管理。
66+ 
67+**修改建议**:默认值为 /tmp/deploys。建议根据服务器磁盘空间分配情况修改,选择磁盘空间充足、读写速度较快的目录,修改后需确保Runtime 服务运行用户对该目录有读写权限,避免因权限不足导致文件无法生成。
68+ 
69+## DIST_DIR(依赖包目录)
70+ 
71+**作用**:指定存放运行低码Agent 所需的所有 .whl 依赖包的目录,服务启动时会从该目录加载依赖包,确保低码Agent 正常运行。
72+ 
73+**修改建议**:默认值为 /tmp/dist。修改后需确保服务运行用户对该目录有读取权限。
74+ 
75+# 服务运行相关配置
76+ 
77+此类配置用于指定 Runtime 服务的监听地址、端口及启动参数,直接影响服务的可访问性和运行稳定性。
78+ 
79+## HOST(服务监听主机)
80+ 
81+**作用**:指定 agent-runtime-server 的监听主机地址,决定哪些网络地址可以访问该服务。
82+ 
83+**修改建议**:默认值为 0.0.0.0,表示允许所有网络地址(内网、公网)访问该服务,适用于生产环境。若仅需内网访问,可修改为服务器内网IP地址(如 192.168.1.100),禁止公网访问,提升服务安全性;不建议修改为 127.0.0.1,否则外部无法访问该服务。
84+ 
85+## PORT(服务启动端口号)
86+ 
87+**作用**:指定 agent-runtime-server 的监听端口,外部通过该端口访问服务。
88+ 
89+**修改建议**:默认值为 8186。若该端口被服务器上其他服务占用,需修改为未被占用的端口(建议选择 1024 以上的端口,避免与系统端口冲突);修改后需同步更新服务访问地址,同时确保该端口已在防火墙中开放,允许外部访问(生产环境需限制访问来源,仅开放给指定IP)。
90+ 
91+## UV_EXTRA_ARGS(uv 命令额外参数)
92+ 
93+**作用**:为 uv 命令全局添加额外参数,主要用于解决部分内网、受限环境中,uv pip install 过程中出现的 SSL 证书校验失败、TLS 握手异常、镜像源连接失败等问题,保障依赖包正常安装。
94+ 
95+**修改建议**:提供示例参数 "--native-tls --allow-insecure-host mirrors.aliyun.com -i https://mirrors.aliyun.com/pypi/simple/pip"仅为参考,需根据实际环境修改。
96+ 
97+具体修改场景:
98+ 
99+- 若环境可正常访问公网镜像源,无需添加镜像源参数;
100+ 
101+- 若为内网环境,需将镜像源改为内网私有镜像源(如 "-i https://registry.example.com/pypi/simple/");
102+ 
103+- 若出现 SSL 证书校验失败,可添加 --allow-insecure-host 指定镜像源主机,或添加 --no-ssl-verify(不建议生产环境使用,存在安全风险);
104+ 
105+- 参数之间需用空格分隔,整体用双引号包裹,避免参数解析错误。
106+ 
107+# 服务启动策略配置
108+ 
109+此类配置用于指定 runtime-server 的启动方式,决定服务启动时如何启动低码Agent,支持 subprocess、docker、k8s 三种启动策略。
110+ 
111+## DEPLOY_TYPE(启动方式配置)
112+ 
113+**作用**:定义 runtime-server 的运行环境及低码Agent 的启动策略,不同值对应不同的部署架构,具体说明如下:
114+ 
115+- subprocess(默认值):runtime-server 以独立进程运行,低码Agent 的类型由部署请求参数动态决定;
116+ 
117+- docker:runtime-server 运行在 Docker 环境中,无论部署请求内容如何,仅启动容器版低码Agent,适用于容器化部署场景;
118+ 
119+- k8s:runtime-server 运行在 Kubernetes 集群中,无论部署请求内容如何,仅启动 K8s 编排版低码Agent,适用于k8s部署场景。
120+ 
121+**修改建议**:根据实际部署架构修改,修改后需确保运行环境与配置值匹配:
122+ 
123+- 进程化部署的runtime-server: 配置 DEPLOY_TYPE=subprocess
124+ 
125+- 容器化部署的runtime-server: 配置 DEPLOY_TYPE=docker,同时确保 LOWCODE_IMAGE 配置正确,Docker 服务已正常启动;
126+ 
127+- K8s 集群部署的runtime-server: 配置 DEPLOY_TYPE=k8s,同时确保集群环境已配置完成,LOWCODE_IMAGE 配置正确,服务具备 K8s 编排权限。
128+ 
129+# 通用修改注意事项
130+ 
131+- 所有配置项均为 键=值 格式,等号前后不可有空格,否则会导致参数解析失败;
132+ 
133+- 注释内容以 # 开头,仅用于说明,不影响服务运行,修改时可保留或补充注释,便于后续维护;
134+ 
135+- 配置修改后,需重启 runtime-server 服务,修改后的参数才能生效;
@@ -2,10 +2,82 @@
2 2 
3# 进程部署3# 进程部署
4 4 
5- 
6- 
7# docker 容器部署5# docker 容器部署
8 6 
7+本文档专门说明 Runtime 服务中,不同部署模式的 runtime-server 启动容器化低码Agent 的具体操作方法,明确操作步骤、配置要求及注意事项,为运维及开发人员提供标准化部署指引。
9 8 
9+## 进程部署的 runtime-server 启动容器化低码Agent
10 10 
11-# k8s 部署(待开放)11+当 runtime-server 以进程模式部署时,可通过以下两种方式启动容器化低码Agent,两种方式可根据实际部署需求灵活选择。
12+ 
13+**方式一:通过 HTTP 请求指定启动模式**
14+ 
15+通过发送 HTTP POST 请求,在请求参数中指定 mode=docker,即可触发 runtime-server 启动容器化低码Agent,适用于临时、按需启动容器化Agent的场景。
16+ 
17+具体请求命令如下(需根据实际部署环境替换占位参数):
18+ 
19+```
20+curl -X POST "http://<runtime-server的IP地址>:<runtime-server的port>/api/v1/agents/deploy?name=<低码agent的名字>&mode=docker" -F "file=@<低码agent的ir.json>"
21+```
22+ 
23+**参数说明**:该命令用于触发 runtime-server 按需启动容器化低码Agent,所有尖括号<>包裹的内容为占位参数,需根据实际部署场景替换,具体要求如下:
24+ 
25+- <runtime-server的IP地址>:替换为 runtime-server 服务实际部署的主机IP地址(内网/公网均可,需确保请求发起端可访问);
26+ 
27+- <runtime-server的port>:替换为 runtime-server 服务的监听端口(对应 server/.env配置文件中的 PORT 配置项);
28+ 
29+- <低码agent的名字>:替换为自定义的低码Agent名称,建议遵循“业务标识-Agent类型”命名规范,便于区分和管理;
30+ 
31+- <低码agent的ir.json>:替换为低码Agent配置文件 ir.json 的本地绝对路径或相对路径,确保发起请求的终端可正常读取该文件,文件格式需符合服务要求。
32+ 
33+**方式二:通过配置文件固定启动模式**
34+ 
35+在 runtime-server 对应的配置文件 server/.env 中,将 DEPLOY_TYPE 配置项指定为 docker。配置生效后,无论后续收到何种HTTP部署请求,runtime-server 都会强制启动容器化低码Agent,适用于需统一使用容器化Agent的场景。
36+ 
37+核心配置如下:
38+ 
39+```
40+DEPLOY_TYPE=docker
41+```
42+ 
43+注意:配置修改后,需重启 runtime-server 进程,确保配置生效。
44+ 
45+## 容器部署的 runtime-server 启动容器化低码Agent
46+ 
47+当 runtime-server 本身以Docker容器模式部署时,启动容器化低码Agent的操作分为手动启动和一键部署工具启动两种场景,具体操作如下。
48+ 
49+**场景一:手动启动 runtime-server 容器**
50+ 
51+若手动执行Docker命令启动 runtime-server 容器,需提前确保配置文件 .env 中已设置DEPLOY_TYPE=docker,同时启动容器时需挂载必要的目录,确保容器内服务可正常调用Docker服务。
52+ 
53+具体启动命令如下:
54+ 
55+```
56+docker run -d --name <studio-runtime-server的容器名> -v <配置文件.env文件路径>:/app/site-packages/openjiuwen_runtime/server/.env -v /var/run/docker.sock:/var/run/docker.sock <studio-runtime-server的镜像名>
57+```
58+ 
59+**说明:**
60+ 
61+- <studio-runtime-server的容器名> 需替换为实际的容器名称,建议遵循“服务名-环境”的命名规范(如 studio-runtime-server-prod);
62+ 
63+- <配置文件.env文件路径> 需替换为本地 .env 配置文件的绝对路径,确保容器内可读取到正确的配置;并且已设置DEPLOY_TYPE=docker。
64+ 
65+- 挂载 /var/run/docker.sock 目录,是为了让容器内的 runtime-server 能够调用宿主机的Docker服务,从而启动低码Agent容器;
66+ 
67+- <studio-runtime-server的镜像名> 需替换为实际的 runtime-server 容器镜像地址及标签。
68+ 
69+**场景二:一键部署工具启动 runtime-server 容器**
70+ 
71+若通过官方提供的一键部署工具启动 runtime-server 容器,工具会自动完成 DEPLOY_TYPE=docker 配置及相关目录挂载,无需手动进行任何额外操作,启动完成后 runtime-server 会自动按容器化方式启动低码Agent。
72+ 
73+## 注意事项
74+ 
75+- 无论哪种部署模式,启动容器化低码Agent前,需确保宿主机Docker服务已正常启动,且 runtime-server 具备访问Docker服务的权限;
76+ 
77+- 手动启动容器时,务必确保 .env 配置文件挂载路径正确,否则会导致配置读取失败,同时保证已设置DEPLOY_TYPE=docker,无法启动容器化Agent;
78+ 
79+- 若启动失败,可优先检查DEPLOY_TYPE 配置、runtime-server 容器的logs,排查相关异常。
80+ 
81+- 对于容器化部署的 runtime-server,仅当低码Agent 以容器化方式启动时,低码Agent 才能正常提供服务,非容器化启动方式将导致Agent服务无法响应请求;
82+ 
83+# k8s 部署(待开放)