Как передать в Docker-контейнер параметры подключения к базе данных для Spring-приложения, чтобы они не были зашиты в образ?

Передавайте конфигурацию при запуске: через environment variables, смонтированный конфигурационный файл или secret manager. Образ должен оставаться одинаковым для разных окружений и не содержать пароль БД.

Короткий ответ

Что ответить на собеседовании

Передавайте конфигурацию при запуске: через environment variables, смонтированный конфигурационный файл или secret manager. Образ должен оставаться одинаковым для разных окружений и не содержать пароль БД.

Подробный разбор

Ответ с пояснениями

Передавайте конфигурацию при запуске: через environment variables, смонтированный конфигурационный файл или secret manager. Образ должен оставаться одинаковым для разных окружений и не содержать пароль БД.

Для Spring часто используют SPRING_DATASOURCE_URL, SPRING_DATASOURCE_USERNAME и SPRING_DATASOURCE_PASSWORD либо безопасно смонтированные настройки. Секреты не кладут в Dockerfile, build args, репозиторий или команды, попадающие в историю. Ограничивают доступ к окружению и диагностическим endpoints. Адрес, сертификаты и параметры pooling также должны задаваться согласованной конфигурацией, а ротация секрета — иметь понятный процесс.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее