Весеннее развертывание микросервиса в докерах
Мне нужно разработать микросервис с загрузочной пружиной и развернуть его в докерах. Сейчас я разработал один образец микросервиса. Когда я изучал развертывание Docker и контейнеров, я нашел много документов для установки docker и создания образов и запуска приложения в виде контейнерной упаковки. Здесь у меня есть некоторые сомнения в процедуре развертывания. Я добавляю свои заблуждения ниже,
Если мне нужно развернуть 4 загрузочных микросервиса в докере, мне нужно создать отдельный образ для всех? Или я могу использовать один и тот же файл докера во всех моих микросервисах с весенней загрузкой?
Я использую базу данных postgreSQL. Так можно ли включить это соединение в файл образа докера? Или мне нужно управлять отдельно?
Я новичок в сфере контейнеров, AWS и Spring World, только начал исследования. Так что столкнулся с большим количеством путаницы. Может кто-нибудь помочь прояснить мои заблуждения, пожалуйста?
1 ответ
- Если у вас есть четыре разных приложения Spring Boot, я предлагаю создать четыре разных файла Docker и создать четыре разных образа из этих файлов. В основном поместите один Dockerfile в каждую папку приложения Spring.
- Вы можете встроить учетные данные PostgreSQL (имя хоста, имя пользователя и пароль) в приложение, написав его в коде. Это проще всего.
Если вы используете AWS и ECS (Elastic Container Service) или EC2 для запуска ваших Docker-контейнеров, вы можете сохранить учетные данные в хранилище параметров EC2, и ваше приложение получит их при запуске, однако для этого потребуется больше знаний AWS, и вам придется используйте AWS SDK для получения учетных данных из приложения. Вот вопрос Stackru именно об этом: Доступ к значениям хранилища параметров AWS с помощью пользовательского ключа KMS Задать вопрос
- Для всех ваших микросервисов может быть одно изображение, но это плохой дизайн и не рекомендуется. Всегда старайтесь отделить вещи одно от другого. В вашем случае создайте отдельные образы (отдельный файл Dockerfile) для каждого микросервиса.
- Опять же, то же самое для вашего второго вопроса, создайте отдельный образ (один файл Docker) для своей базы данных. А что касается полномочий, вы можете последовать совету Джонатана.