Динамические переменные среды выполнения docker-compose - PullRequest
0 голосов
/ 08 сентября 2018

У меня есть локальная настройка разработки, где я туннелирую к удаленному экземпляру базы данных и выставляю это через порт на моей машине.

Моя машина также является хостом для док-контейнера, который я хочу подключить к этой удаленной базе данных.

Для этого я не могу перенаправить порт на localhost (что будет означать что-то другое внутри контейнера Docker), поэтому я пересылаю его на адрес моего локального IP-адреса.

ifconfig en0 | awk '$1 == "inet" {print $2}' выходы 10.0.0.5

ssh -N -L 10.0.0.5:9876:database-instance.website.com:9876 instance-to-tunnel-through.website.com

др

Теперь по моему docker-compose-yml я могу сделать:

version: "3"

my-app
  ports:
    - 5000:5000 # expose app to host on port 5000
  build: ./my-app # point to my-app's Dockerfile
  environment:
    - HOST_IP=10.0.0.5

А потом внутри приложения я могу сослаться на HOST_IP. Это работает, но это означает, что мне приходится менять docker-compose.yml каждый раз, когда я переключаю сети, что является болью.

В идеале, я бы хотел, чтобы контейнер выдавал текущий вывод ifconfig, когда он запускается.

Я просмотрел файлы Docker .env, но, похоже, они содержат только статические данные. Я смотрел на RUN в Dockerfile

...