无法在docker-compose中使用variablesreplace

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

我看到docker-compose的variablesreplacefunction正是我所需要的。 当我尝试像下面这样的工作正常

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到我的容器? 这将是很好,如果我可以传递像boot2docker ipboot2docker ip docker-machine ip default extra_hosts部分的命令,或者如果docker-compose可以执行一个脚本来获得这个值将是伟大的!

问题是, DOCKER_HOST是一个由DOCKER_HOST docker-compose自己使用的variables( https://docs.docker.com/compose/reference/overview/#docker-host ),格式是错误的(它需要一个tcp:// scheme和我相信的港口)。

你将不得不select一个不同的variables来将它包含在extra_hosts:

否则,你可以把它作为一个环境variables( environment: [DOCKER_HOST=]environment: [DOCKER_HOST=] ,并在容器中parsing出它的IP地址。