Вы, вероятно, не хотите делать ни одно из этих действий.
Если вы запускаете оба контейнера в одной и той же настройке Docker Compose, то Compose создаст для вас частную сеть Docker, и один контейнер можетполучить доступ к другому, используя его имя контейнера (или имя блока в docker-compose.yml
) в качестве имени хоста.Это должно устранить необходимость в статическом IP-адресе.
Во-вторых, жесткое кодирование имен хостов или IP-адресов, подобных этому, значительно усложняет повторное использование настроек.В качестве очень простого примера, при разработке вне Docker вы можете запустить клиент и сервер на одном хосте и использовать localhost
в качестве имени хоста, но в настройке Docker Compose они будут находиться в разных контейнерах и использовать разные имена хостов.,Это также означает, что вы никогда не сможете docker push
создать образ в реестре, что необходимо для некоторых распространенных сценариев развертывания.Переменная окружения является распространенным способом передачи этого извне.
A docker-compose.yml
, который выполнил это, может выглядеть так:
version: '3'
services:
server:
build:
context: ./server
client:
build:
context: ./client
env:
SERVER_URL: 'http://server/'