簡體   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