Здравствуйте, я начинаю с docker и docker compose, и у меня возникает следующая проблема:
Я работаю в архитектуре микросервисов spring, где у меня есть одна служба конфигурации, одна служба обнаружения, одна служба шлюза и несколько служб ресурсов. Для запуска этих служб я создаю файлы jar, которые помещаю в отдельную папку для каждой службы с их файлами конфигурации (application.yml и bootstrap.yml): например:
-
служба конфигурации/
- config-service.jar
- application.yml
-
служба обнаружения/
- discovery-service.jar
- bootstrap.yml
-
служба шлюза/
- шлюз-service.jar
- bootstrap.yml
-
crm-service/
- crm-service.jar
- bootstrap.yml
Пока это работает на моем сервере.
Теперь я хочу развернуть свои службы в различных средах в виде образов докеров (созданных с помощью образа сборки mvn и пакета сборки) с помощью компоновки докеров, где файлы конфигурации различаются в зависимости от среды. Как я могу развернуть службу как контейнер, используя существующий образ, но с другим файлом конфигурации?
Заранее спасибо!
Вы можете поместить все свои файлы в этот образ, а затем использовать переменную среды, чтобы выбрать тот, который вы хотите использовать при запуске. Хотя не уверен, что это будет хорошей практикой. Я думаю, что лучше делать это при сборке с помощью аргумента сборки и копировать только тот файл, который вам нужен. docs.docker.com/compose/compose-file/compose-file-v3/#build.