【问题标题】:Unable to use variable substitution in docker-compose无法在 docker-compose 中使用变量替换
【发布时间】:2016-01-28 21:40:47
【问题描述】:

我使用 mac 来运行 docker,因此我依赖于 boot2docker 或 docker-machine 。我在容器中运行的应用程序需要 docker 主机的 ip。

我看到 docker-compose 的变量替换功能正是我所需要的。当我尝试像下面这样的事情时,它工作正常

extra_hosts:  
 - "somehost:162.242.195.82"

但是当我尝试类似:

export DOCKER_HOST="64.88.225.66"



extra_hosts:  
      - "host:${DOCKER_HOST}"

我明白了:

$ docker-compose build --no-cache
Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "/code/compose/cli/main.py", line 54, in main
  File "/code/compose/cli/docopt_command.py", line 23, in sys_dispatch
  File "/code/compose/cli/docopt_command.py", line 26, in dispatch
  File "/code/compose/cli/main.py", line 169, in perform_command
  File "/code/compose/cli/command.py", line 53, in project_from_options
  File "/code/compose/cli/command.py", line 89, in get_project
  File "/code/compose/cli/command.py", line 70, in get_client
  File "/code/compose/cli/docker_client.py", line 28, in docker_client
  File "/code/.tox/py27/lib/python2.7/site-packages/docker/client.py", line 58, in __init__
  File "/code/.tox/py27/lib/python2.7/site-packages/docker/utils/utils.py", line 362, in parse_host
docker.errors.DockerException: Bind address needs a port: 64.88.225.66
docker-compose returned -1

我不确定它为什么需要一个端口。当我也给它一个端口号时它不高兴。

那么,我怎样才能让我的 docker 主机 ip 到我的容器?如果我可以在 extra_hosts 部分中传递 boot2docker ipdocker-machine ip default 之类的命令,或者如果 docker-compose 可以执行脚本来获取这个值,那就太好了!

【问题讨论】:

    标签: docker boot2docker docker-compose docker-machine fig


    【解决方案1】:

    问题在于DOCKER_HOSTdocker-compose 本身使用的变量(https://docs.docker.com/compose/reference/overview/#docker-host)并且格式错误(它需要tcp:// 方案和我相信的端口)。

    您必须选择不同的变量才能将其包含在 extra_hosts: 中。

    否则,您可以将其作为环境变量 (environment: [DOCKER_HOST=]) 传入,然后在容器中解析出 ip 地址。

    【讨论】:

    • 啊,对了,非常感谢!如果我能做一些类似 extra_hosts:-"some_host:sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'"
    猜你喜欢
    • 2020-04-11
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多