Docker Compose中未设置环境变量时添加含连字符的默认值
Docker Compose extra_hosts环境变量默认值配置方案
你的问题出在语法错误上,以下是具体分析和解决方法:
- 错误1:
${SOME_IP:#{host-gateway}}里的#{}是Ansible等工具的语法,Docker Compose不识别这种写法。 - 错误2:
${SOME_IP:-host-gateway}}多了一个闭合的},属于语法格式错误,导致解析失败。
正确配置方式
Docker Compose的环境变量默认值语法是${变量名:-默认值},直接把默认值写在:-后面即可,针对你的场景,正确的extra_hosts配置如下:
extra_hosts: - "kafka-1:${SOME_IP:-host-gateway}"
说明
- 当环境变量
SOME_IP已设置时,会使用你指定的IP地址; - 当
SOME_IP未设置时,自动使用host-gateway(Docker 20.10及以上版本支持,用于指代宿主机的网关地址); - 如果你的Docker版本较低,
host-gateway不生效,可以替换为host.docker.internal(部分系统适用)或者宿主机的具体IP地址。
内容的提问来源于stack exchange,提问作者Makruzz
相关产品推荐
相关产品推荐

