使用Docker机密访问Jenkinsfile中的数据库

时间:2019-02-28 12:56:43

标签: docker jenkins jenkins-pipeline docker-secrets

在我的Jenkinsfile中,我正在运行Maven命令来开始数据库迁移。该数据库正在Docker容器中运行。

在部署数据库容器时,我们正在使用swarm管理器节点中的Docker机密作为密码。

有什么方法可以在Jenkins管道脚本中 使用该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 个答案:

答案 0 :(得分:0)

您可以在詹金斯中创建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...
"""