Использование секрета Docker для доступа к базе данных в Jenkinsfile

В моем Jenkinsfile Я запускаю команду Maven, чтобы начать миграцию базы данных. Эта база данных работает в контейнере Docker.

При развертывании контейнера базы данных мы используем секрет Docker из узла менеджера роя для пароля.

Есть ли способ, как использовать этот секрет Docker в сценарии конвейера Jenkins вместо того, чтобы вводить его в виде простого текста? Я мог бы использовать учетные данные Дженкинса, но тогда мне нужно было бы хранить одни и те же секреты в двух разных местах.

sh """$mvn flyway:info \
    -Dproject.host=$databaseHost \
    -Dproject.port=$databasePort \
    -Dproject.schema=$databaseSchema \
    -Dproject.user=db_user \
    -Dproject.password=db_pass \ // <--- Use a Docker secret here...
"""

1 ответ

Вы можете создать username and password например, учетные данные в Дженкинс database_crendential, затем используйте это так:

environment {
    DATABASE_CREDS = credentials('database_crendential ')
}

...
sh """$mvn flyway:info \
-Dproject.host=$databaseHost \
-Dproject.port=$databasePort \
-Dproject.schema=$databaseSchema \
-Dproject.user=${DATABASE_CREDS_USR}\
-Dproject.password=${DATABASE_CREDS_PSW}\ // <--- Use a Docker secret here...
"""
Другие вопросы по тегам