DennisKingsman
@DennisKingsman
Студент

Как конфигурировать программу в контейнере снаружи?

Здравствуйте, допустим у меня есть спринговое приложение, которое я поместил в контейнер и оно имеет конфиг файл проперти или ямль. Я хочу запускать это приложение в докер контейнере, но мне надо чтоб оно конфигурировалось извне. Тоесть каждая машина, которая будет запускать, имеет свой конфиг который где то на ней лежит. Помогите разобраться как это сделать, пожалуйста
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
azerphoenix
@azerphoenix Куратор тега Java
Добрый день!
На самом деле вариантов много и ответы можно легко найти, если поискать.
Вот, несколькие из них:
Допустим, что вы собираете образ используя Dockerfile. Если вы хотите иметь возможность конфигурировать сам процесс создания image на основе Dockerfile, то посмотрите на такие инструкции, как ARG & ENV. ARG - позволяет определять аргументы на этапе (до создания) image. ENV - environment определяет переменные среды.
Соответственно, передать эти параметры можно так:
1) В случае ARG для docker использовать --build-args. В случае ENV использовать -e
2) В случае использования docker-compose для передачи параметра в Dockerfile использовать environment:
Например,
environment:
  - BASE_URL=http://example.com

3) Если вы хотите передать конфигурацию для application.properties или application.yml извне например, из docker-compose, то можете просто в environment указать нужные конфиги.
Например,
environment:
      - spring.application.name=custom_app


Доп. информация:
https://stackoverflow.com/questions/46057625/exter...
https://stackoverflow.com/questions/58695423/pass-...
https://medium.com/@cybourgeoisie/docker-env-metho...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Sha644
- Забрасывать при запуске копированием.
- Собирать ещё один слой с нужным конфигурационным файлом.
- примонтировать в нужное место из хоста.
- поместить в том заблаговременно.
- переписывайте конфигурационный файл скриптом изнутри.(Да, это не редко встречаемый вариант)
и etc
Вариантов уйма. Извращайтесь сколько влезет.
*P.s., не нужно спрашивать в комментариях как конкретно это сделать. У вас вопрос изначально составлен в формате "сделайте за меня, мне лень разбираться". Пока в в вопросе не будет конкретики или хотя б намёка, что вы хоть толику усилий приложили к решению, отвечать подробнее смысла нет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы