有三种方法可以在jenkins和gitlab之间设置身份验证,我很困惑。 我想做的事情非常简单:从gitlab分支机构检查,使用maven构建,创建一个docker镜像,将其推入注册表
我做了什么:
我的管道第一阶段:
node {
deleteDir()
def mvnHome
def pom
stage('Checkout SCM') {
git branch: 'develop', credentialsId: 'xxxxxxxxxxxxxxx', url: 'git@gitlab.com:blablabla/blablablabla.git'
mvnHome = tool 'M3'
pom = readMavenPom file: 'pom.xml'}
错误:
错误:错误克隆远程回购'来源' hudson.plugins.git.GitException:命令" git fetch --tags --progress git@gitlab.com:blablabla / blablablabla.git + refs / heads / :refs / remotes / origin / "返回状态码128: 标准输出: stderr:权限被拒绝(publickey)。 致命的:无法从远程存储库读取。
答案 0 :(得分:1)
您必须按以下方式配置密钥对
假设你在gitlab中有你的公共ssh密钥(如果没有添加它) 在您的docker env中,但是用于jenkins的用户添加私钥
用于测试,从本地ssh到docker env并执行与Jenkins一样的命令:
git fetch --tags --progress git@gitlab.com:blablabla/blablablabla.git +refs/heads/:refs/remotes/origin/
另外,请在这里拍照 - https://www.blazemeter.com/blog/how-integrate-docker-jenkins,希望它会给你更多的见解。