Jenkins 管道私有存储库依赖
Jenkins pipeline private repository dependency
我在一个存储库中有一个 Jenkins 管道,并且这个存储库的 package.json 依赖于另一个存储库(两者都是 Bitbucket 私有存储库)。当我在本地执行 yarn install 时,它运行良好,但在 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 Branch Source 插件),并在两个 bitbucket 项目中也添加了密钥。另一个项目(没有依赖项)的管道工作正常,所以我认为这不是 ssh 密钥的问题。 package.json 中的依赖行如下所示:
"repo": "ssh://bitbucket.org/user/repo.git#develop"
也试过
"repo": "git+ssh://bitbucket.org/user/repo.git#develop"
有人遇到过类似的问题吗?
When I do the yarn install in local, it works perfectly, but in jenkins it's fails
这是典型的 git,它也没有在您期望的地方搜索(应该在帐户 运行 Jenkins/.ssh 中)
调试此问题的一个好方法是设置变量 GIT_SSH_COMMAND=ssh -v
(使用 JENKINS EnvInject Plugin)以便查看,每当使用 ssh 协议调用 git 时,键是什么使用过。
OP 添加:
I have chosen to delete the passphrase from the ssh key and it works correctly.
这表明将缓存密码的 ssh-agent 在用户帐户中 运行,但不在 Jenkins 帐户中。
感谢VonC留言,我
调试詹金斯:
ssh -v bitbucket.org
我可以看出问题是 jenkins 试图启动一个 tty 来询问密码
debug1: read_passphrase: can't open /dev/tty: No such device or address
最后我选择从 ssh 密钥中删除密码并且它工作正常。
我在一个存储库中有一个 Jenkins 管道,并且这个存储库的 package.json 依赖于另一个存储库(两者都是 Bitbucket 私有存储库)。当我在本地执行 yarn install 时,它运行良好,但在 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 Branch Source 插件),并在两个 bitbucket 项目中也添加了密钥。另一个项目(没有依赖项)的管道工作正常,所以我认为这不是 ssh 密钥的问题。 package.json 中的依赖行如下所示:
"repo": "ssh://bitbucket.org/user/repo.git#develop"
也试过
"repo": "git+ssh://bitbucket.org/user/repo.git#develop"
有人遇到过类似的问题吗?
When I do the yarn install in local, it works perfectly, but in jenkins it's fails
这是典型的 git,它也没有在您期望的地方搜索(应该在帐户 运行 Jenkins/.ssh 中)
调试此问题的一个好方法是设置变量 GIT_SSH_COMMAND=ssh -v
(使用 JENKINS EnvInject Plugin)以便查看,每当使用 ssh 协议调用 git 时,键是什么使用过。
OP 添加:
I have chosen to delete the passphrase from the ssh key and it works correctly.
这表明将缓存密码的 ssh-agent 在用户帐户中 运行,但不在 Jenkins 帐户中。
感谢VonC留言,我 调试詹金斯:
ssh -v bitbucket.org
我可以看出问题是 jenkins 试图启动一个 tty 来询问密码
debug1: read_passphrase: can't open /dev/tty: No such device or address
最后我选择从 ssh 密钥中删除密码并且它工作正常。