Передавайте конфигурацию при запуске: через environment variables, смонтированный конфигурационный файл или secret manager. Образ должен оставаться одинаковым для разных окружений и не содержать пароль БД.
Как передать в Docker-контейнер параметры подключения к базе данных для Spring-приложения, чтобы они не были зашиты в образ?
Передавайте конфигурацию при запуске: через environment variables, смонтированный конфигурационный файл или secret manager. Образ должен оставаться одинаковым для разных окружений и не содержать пароль БД.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Передавайте конфигурацию при запуске: через environment variables, смонтированный конфигурационный файл или secret manager. Образ должен оставаться одинаковым для разных окружений и не содержать пароль БД.
Для Spring часто используют SPRING_DATASOURCE_URL, SPRING_DATASOURCE_USERNAME и SPRING_DATASOURCE_PASSWORD либо безопасно смонтированные настройки. Секреты не кладут в Dockerfile, build args, репозиторий или команды, попадающие в историю. Ограничивают доступ к окружению и диагностическим endpoints. Адрес, сертификаты и параметры pooling также должны задаваться согласованной конфигурацией, а ротация секрета — иметь понятный процесс.