Назад | Перейти на главную страницу

Docker, настройки приложения docker-compose

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

SQLALCHEMY_DATABASE_URI

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

BROKER_URL

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

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

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

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

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

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