gpt4 book ai didi

docker - 无法在docker-compose中使用变量替换

转载 作者:行者123 更新时间:2023-12-02 19:11:46 27 4
gpt4 key购买 nike

我使用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_HOSTdocker-compose本身(https://docs.docker.com/compose/reference/overview/#docker-host)使用的变量,格式错误(我相信它需要tcp://方案和端口)。

您必须选择其他变量以将其包含在extra_hosts:中。

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

关于docker - 无法在docker-compose中使用变量替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35072611/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com