Я использую mac для запуска докеров и, следовательно, я зависим от boot2docker или docker-machine. Мое приложение, запущенное в контейнере, нуждается в ip-хосте docker.Невозможно использовать замену переменных в 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
Я не знаю, почему он хочет порт. Это было не очень приятно, когда я дал ему номер порта.
Итак, как я могу получить мой ip-адрес докера в мой контейнер? Было бы неплохо, если бы я мог передавать команды вроде boot2docker ip
или docker-machine ip default
в разделе extra_hosts, или, может быть, если docker-compose мог бы выполнить скрипт, чтобы получить это значение, было бы здорово!
Ах, верно, большое вам спасибо! Было бы хорошо, если бы я мог сделать что-то вроде extra_hosts: - "some_host:' SBIN/Ifconfig eth0 | Grep 'инет адр:' | вырезать -d: -f2 | AWK '{печать $ 1}' '" – user1807948