繁体   English   中英

Jenkins管道私有存储库依赖

[英]Jenkins pipeline private repository dependency

我在存储库中有一个Jenkins管道,并且此存储库的package.json具有来自另一个存储库的依赖项(两者都是Bitbucket私有存储库)。 当我在本地进行纱线安装时,它可以很好地工作,但是在jenkins中它失败并出现这个错误:

yarn install v1.2.1
[1/5] Validating package.json...
[2/5] Resolving packages...
error Command failed.
Exit code: 128
Command: git
Arguments: ls-remote --tags --heads ssh://git@bitbucket.org/user/repo.git
Directory: /var/lib/jenkins/workspace/s_repo_branch-
YJRVO7LRN3U452ZV2XNZJUB35FGSW2NXEAUPBCDKUVTKUFAHHBDA
Output:
Permission denied (publickey).
fatal: Could not read from remote repository.

我在主机上添加了ssh密钥,添加为扫描组织文件夹的jenkins凭证(使用Bitbucket分支源插件)并在bitbucket项目中添加了密钥。 另一个项目的管道(没有依赖项)正常工作,所以我认为这不会是ssh密钥的问题。 package.json中依赖项的行如下所示:

"repo": "ssh://bitbucket.org/user/repo.git#develop"

也试过了

"repo": "git+ssh://bitbucket.org/user/repo.git#develop"

有没有类似的问题?

当我在本地进行纱线安装时,它完美地工作,但在jenkins中它失败了

这是一个典型的git,它没有在你期望的地方搜索(应该在运行Jenkins / .ssh的帐户中)

调试这个的一个好方法是设置变量GIT_SSH_COMMAND=ssh -v (使用JENKINS EnvInject插件 ),以便在使用ssh协议调用git时查看使用了哪些键。

OP增加:

我选择从ssh键中删除密码,它可以正常工作。

这表明缓存密码的ssh-agent正在用户帐户中运行,但不在Jenkins帐户中运行。

感谢VonC消息,我调试jenkins:

ssh -v bitbucket.org

我能够看到问题是jenkins试图发起一个tty来询问密码

debug1: read_passphrase: can't open /dev/tty: No such device or address

最后我选择从ssh键中删除密码,它可以正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM