首页/云/Docker 容器速查/compose 变量插值语法与转义
Compose 编排55 条

compose 变量插值语法与转义

文件值里的 ${VAR} 在解析阶段被替换:支持 :- 默认值与 :? 必填校验,字面量美元符要写 $$。

Docker 容器速查云更新于 2026-10-12
引用${VAR} / $VAR
默认值${VAR:-default}
必填校验${VAR:?message}
转义$$ 输出单个 $

示例

示例
services:
  api:
    image: app/api:${TAG:-latest}
    environment:
      DB_PASSWORD: ${DB_PASSWORD:?must set DB_PASSWORD}
      SHELL_SNIPPET: "echo $$HOSTNAME"
插值发生在 Compose 解析阶段,作用于 compose 文件内所有字符串值;容器内看到的已是替换后的结果。

易错点

  • shell 命令里想保留 $ 时忘记 $$ 转义,变量在 compose 阶段就被吃掉
  • 把密钥写进 compose 文件做默认值会随文件外泄,必填用 :? 强制外部提供

数据来源与参考

  • Docker 官方文档:Compose 变量插值(docs.docker.com/compose/environment-variables/variable-interpolation)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌