---
title: "启动命令与环境变量"
description: "配置容器进程、参数和环境变量，并理解命令解析及启动失败的检查方法。"
---

> Documentation Index
> Fetch the complete documentation index at: https://cdelivery.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# 启动命令与环境变量

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

## 启动命令

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

```text
nginx -g 'daemon off;'
```

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

确实需要 shell 时，可以填写：

```text
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` 指向该容器自身，不能用它代替另一个数据库应用的地址，参见[应用间通信](/docs/zh-cn/guides/networking/connectivity/)。

## 配置内容的可见性

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

较大的配置文件使用 [XConfig](/docs/zh-cn/guides/apps/xconfig/)；持续写入的业务数据使用[数据卷](/docs/zh-cn/guides/apps/persistence/)。

## 启动失败怎么检查

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

应用的自动重启延迟可在重启策略设置中调整，默认 60 秒。重启不能修复持续存在的错误命令；应先修正配置，再看[应用日志](/docs/zh-cn/guides/observability/logs/application/)。

Source: https://cdelivery.dev/docs/zh-cn/guides/apps/container/index.mdx
