[英]Download single file from private Git repository in declarative Jenkins pipeline
[英]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.