繁体   English   中英

将 jenkins 机密文件传递给 docker 映像运行

[英]Passing jenkins secrets file to docker image run

我正在构建一个 Jenkins 管道,我在我的存储库中有一个构建图像,并且我已经上传了一个我需要提供给我的构建作业的秘密文件到 Jenkins 凭据作为一个秘密文件。 我需要将此文件复制到 docker 运行命令的工作目录中,该命令在构建器映像上运行命令。 我正在使用它来检索文件作为 env 变量:

withCredentials([
        file(credentialsId: 'keystore', variable: 'KEYSTORE'), {
          try {
            docker run parameters ${image}  -e ${KEYSTORE} command...
         }

关于在运行 docker 映像时如何使该文件在容器内可用的任何想法?

如果您想在 docker 容器中获取凭证文件,您还需要对其进行卷挂载。

docker run parameters ${image} -e ${KEYSTORE} -v ${KEYSTORE}:${KEYSTORE}:ro

如果您使用内置的 docker 支持,jenkins 将负责:

pipeline {
    agent {
        dockerfile {
            dir 'build'
        }
    }

    stages {
        stage('Build') {
            steps {
                withCredentials([file(credentialsId: 'keystore', variable: 'KEYSTORE')]) {
                    sh 'ls -l'
                }
            }
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM