跳至正文
CDelivery

启动命令与环境变量

配置容器进程、参数和环境变量,并理解命令解析及启动失败的检查方法。

应用配置中的容器设置用于改变镜像的启动方式和环境。编辑需要 Operator 或 Admin;修改这些设置会影响后续运行的容器。

启动命令

留空时使用镜像默认启动方式。自定义时需要填写完整的可执行程序及参数,例如:

nginx -g 'daemon off;'

命令会按引号和空格解析为参数,不会自动交给 shell 执行。管道、重定向、&& 和环境变量替换只有在你显式启动 shell 时才具有 shell 含义。

确实需要 shell 时,可以填写:

sh -c 'printf "%s\n" "$GREETING"; exec nginx -g "daemon off;"'

镜像必须包含 sh 及所调用程序。exec 让最后的服务进程接替 shell,有利于正确接收停止信号。改变入口还可能跳过镜像自带的初始化逻辑,优先遵循镜像作者的启动说明。

环境变量

  1. 打开应用配置中的环境变量设置。
  2. 逐项添加变量名和值,例如 GREETING=Hello 或业务要求的数据库地址。
  3. 检查重复项、空值及拼写,再保存应用配置。
  4. 在新容器日志或应用输出中验证参数已生效。

变量名长度为 1–128,不能包含 =;值最多 4096 个字符。这里填写的是值本身,不需要额外包一层 shell 引号。$OTHER 不会因为写在变量值中就自动替换成另一个变量。

同分组数据库可以使用应用名称作为主机名。容器内的 localhost 指向该容器自身,不能用它代替另一个数据库应用的地址,参见应用间通信。

配置内容的可见性

环境变量属于共享应用配置。平台只对明确识别的秘密字段脱敏,不会自动把每个看起来像密码的业务变量变为个人秘密。应依据实际账户权限决定哪些内容适合存放在这里。

较大的配置文件使用 XConfig;持续写入的业务数据使用数据卷。

启动失败怎么检查

现象 常见原因
找不到程序 可执行路径错误,或镜像根本不包含该程序
引号解析失败 单双引号不配对,shell 表达式未显式使用 shell
服务启动后立即退出 程序转入后台、缺少必需变量或初始化失败
数据库无法连接 使用了错误主机名、容器端口或认证信息
保存后仍像旧配置 新副本尚未替换完成,或 Guardian 未推广候选配置

应用的自动重启延迟可在重启策略设置中调整,默认 60 秒。重启不能修复持续存在的错误命令;应先修正配置,再看应用日志。

输入关键词搜索…

↑↓ 移动↵ 选择Esc 关闭