Jenkinsfile pipline 使用 SSH 傳遞金鑰給 Docker
阿新 • • 發佈:2022-05-24
前提
首選你需要將用到的 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 .' } } } } }