Я хочу развернуть приложение Docker в производственной среде (на одном хосте), используя файл docker-compose, предоставленный создателем приложения. Решение на основе докера используется в качестве замены для монолитного двоичного установщика.
Приложение поставляется с конфигурацией по умолчанию, но ожидается, что администратор захочет применить умеренные изменения конфигурации.
Существует несколько способов применить пользовательскую конфигурацию к службам, которые определены в файле docker-compose.yml
, однако я не уверен, что считается наилучшей практикой. В данный момент я рассматриваю два вопроса:
Запекать конфигурацию в новый образ . Здесь я добавил бы шаг сборки для каждой службы, определенной в файле docker-compose, и создал бы минимальный Dockerfile
, который использует COPY
для замены существующих файлов конфигурации в образе моими пользовательскими файлами конфигурации. Использование операторов sed
и echo
в CMD
также может использоваться для изменения встроенной конфигурации без замены файлов оптом.
Используйте связывающее крепление с конфигурацией, хранящейся на хосте . В этом случае я бы сохранил все пользовательские файлы конфигурации в каталоге на хост-машине и определил привязки mind в параметре volumes
для каждой службы в файле docker-compose.
Первый вариант кажется мне наиболее чистым, поскольку приложение полностью автономно, однако мне нужно будет перестроить образ, если я захочу внести какие-либо дополнительные изменения в конфигурацию. Второй вариант кажется самым простым, поскольку я могу вносить изменения в конфигурацию на лету (перезапускать службы, как требуется в контейнере).
Есть ли рекомендуемый способ внедрения пользовательской конфигурации в службы Docker?