Docker, docker -compose application settings

Я начинаю переносить свое приложение в контейнеры Docker: Я использую Ngnix, supervisord, gunicorn, python flask, сельдерей, цветок, lighttpd, RabbitMQ и Postgresql. На моей исходной виртуальной машине я храню все свои конфигурации в / USR / местные / SRC / приложение / конф / В settings.py я определяю мои:

SQLALCHEMY_DATABASE_URI

В celeryconfig.py я определяю:

BROKER_URL

Я создам 5 контейнеров:

  • Ngnix load balancer
  • Flask API
  • Celery
  • RabbitMQ
  • Lighttpd

Я использую docker-compose и тома. Поскольку прямо сейчас все мои IP-адреса - localhost (127.0.0.1)

  1. Какая рекомендация для каждого из моих контейнеров получить доступ к общей конфигурации? Тома?

  2. Как мне узнать, какой IP-адрес назначен каждому контейнеру, чтобы я мог определить свои настройки? Например, когда RabbitMQ запускает, какой IP-адрес мне следует настроить в BROKER_URL?

  3. Поскольку мое приложение Docker по-прежнему будет указывать на мое репозиторий git, могу ли я указать его на папку моего хоста, следует ли мне использовать здесь тома?

Infrastructure

3
задан 15 February 2016 в 09:20
1 ответ
  1. Что касается вашей конфигурации, вы можете передать переменную среды compose, используя env_file для файла или среды напрямую: https://docs.docker.com/compose/compose-file/#env-file
  2. Для IP, когда вы связываете контейнеры в Compose , имя контейнера, которое вы установили в своем yml, будет именем хоста этого контейнера. Вам не нужен IP, только имя пользователя. Вы можете попробовать это, выполнив команду exec bash в контейнере для компоновки и попытавшись проверить связь с другим контейнером с его именем.
  3. Что вы имеете в виду, говоря «указывая на папку вашего хоста?», Попробуйте поместить столько, сколько сможете, непосредственно в контейнер, но если вам действительно нужно извлечь некоторые данные на вашу хост-систему, то да, вам понадобятся тома.
4
ответ дан 3 December 2019 в 06:02

Теги

Похожие вопросы