You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Compose中定义的环境变量未被识别,如何解决?

Docker Compose环境变量未生效问题解决

你的问题出在docker-compose.yml的环境变量定义语法错误:你用了冒号:来分隔变量名和值,而Docker Compose的短格式环境变量定义需要用等号=。

当你写- VAR1:H时,Compose会把它解析为引用宿主机环境中的VAR1变量,默认值为H,但如果你宿主机环境里没有VAR1,就会输出警告并把变量设为空字符串,这就是为什么你看到的输出是空的。

修正方案(二选一)

方案1:短格式用等号

services:
  service1:
    image: alpine
    environment:
      - VAR1=H
      - VAR2=HI
    command:
      - /bin/sh
      - -c
      - |
        echo $VAR1
        echo $VAR2

方案2:长格式用冒号(去掉列表短横线)

services:
  service1:
    image: alpine
    environment:
      VAR1: H
      VAR2: HI
    command:
      - /bin/sh
      - -c
      - |
        echo $VAR1
        echo $VAR2

修正后执行docker compose up,容器会正确输出:

compose-service1-1  | H
compose-service1-1  | HI
compose-service1-1 exited with code 0

内容的提问来源于stack exchange,提问作者Vladimir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 16:55:07