在我的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...
"""
答案 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...
"""