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