Jenkinsfile pipline 使用 SSH 传递密钥给 Docker

前提

首选你需要将用到的 SSH 私钥保存到 Jenkins 的凭据中,这样你会获得一个 credentialId。这不是本文要说的内容,故不在此展开赘述,详情可参考官方文档:https://www.jenkins.io/doc/book/using/using-credentials/。

只用一个 SSH Key

假若我们的 Jenkinsfile 里只用到了一个 SSH key,那么直接使用 Jenkins 的 SSH Agent 这个插件就好,在 Jenkinsfile 中具体写法为:

pipeline {
    agent {
        // ...
    }
    environment {
        // 为了构建镜像时使用 SSH,需要开启 Docker 的 Buildkit 功能
        DOCKER_BUILDKIT = "1"
    }
    stages {
        stage('Docker Build') {
            steps {
			// 启动 ssh agent 并将认的 SSH 私钥凭据添加到其中
			sshagent(credentials: ['ssh-credentials-id']) {
					// 在这里就正常的使用 Docker 相关的传递 SSH 私钥构建
					// 详情可以参见这篇文章:https://www.cnblogs.com/lfkid/p/dockerfile-ssh-docker-build-ssh.html
                    sh 'docker build --ssh default .'
                }
            }
        }
    }
}

参考


image

相关文章

Docker是什么Docker是 Docker.Inc 公司开源的一个基于 LXC技...
本文为原创,原始地址为:http://www.cnblogs.com/fengzheng...
镜像操作列出镜像:$ sudo docker imagesREPOSITORY TAG IMA...
本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p...
在 Docker 中,如果你修改了一个容器的内容并希望将这些更改...
在Docker中,--privileged 参数给予容器内的进程几乎相同的权...