Docker compose: передать случайный порт контейнера в переменную окружения - PullRequest
1 голос
/ 29 апреля 2019

Можно ли установить в файле docker compose контейнер информации о NetworkSetting в переменную окружения?

У меня есть следующий файл docker-compose.yml:

version: '3.7'
services:
  sdt-proxy:
    image: myimage
    ports:
      - 32770-32780:8181
    environment:
      - SERVER_PORT=8181

Itсопоставляет порт 8181 со случайным портом с 32770-32780.когда я запускаю контейнер с docker-compose up, я могу видеть сопоставленный порт с docker inspect:

.....
 "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "83e6933aaf7b09b8ae1238d3dbb71bdd495c14927a5a509b332afc17cda6d854",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "8181/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "32771"
                    }
                ]
            },
...

Итак, я знаю, что внутренний порт 8181 (мое приложение работает внутри контейнера), сопоставленна порт 32771.

Мне нужно передать эту информацию, порт контейнера 32771 моему приложению, возможно ли сделать что-то подобное в файле docker-compose?

version: '3.7'
services:
  sdt-proxy:
    image: myimage
    ports:
      - 32770-32780:8181
    environment:
      - SERVER_PORT=8181
      - MY_CONTAINER_PORT= <the running container port 32771>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...