0

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

1 回答 1

0

username and password例如,您可以在 jenkins中创建凭据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...
"""
于 2019-02-28T13:01:05.787 回答