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
相关产品推荐
相关产品推荐

