微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐