2017-10-30 8 views
3

私はJenkinsパイプラインをリポジトリに持っており、このリポジトリのpackage.jsonには別のリポジトリからの依存関係があります(どちらもBitbucketプライベートリポジトリです)。私は糸がローカルにインストールを行う場合には、それは完璧に動作しますが、ジェンキンスで、それは、このエラーで失敗しています:私は、ホストマシン上のSSHキーを追加した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://[email protected]/user/repo.git 
Directory: /var/lib/jenkins/workspace/s_repo_branch- 
YJRVO7LRN3U452ZV2XNZJUB35FGSW2NXEAUPBCDKUVTKUFAHHBDA 
Output: 
Permission denied (publickey). 
fatal: Could not read from remote repository. 

を、使用して(スキャン組織フォルダのジェンキンス資格として追加Bitbucketブランチソースプラグイン)、両方のbitbucketプロジェクトにキーを追加しました。他のプロジェクト(depedenciesを持っていない)のパイプラインは正しく動作するので、sshキーの問題とは思われません。 package.jsonでの依存関係の行は次のようになります。

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

またどれが同様の問題があった

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

を試してみましたか?あなたも期待して検索されないのgitの典型的なものである

答えて

1

When I do the yarn install in local, it works perfectly, but in jenkins it's fails

これをデバッグするための良い方法は、変数GIT_SSH_COMMAND=ssh -vを設定することです(ジェンキンス/の.sshを実行しているアカウントにする必要があります) JENKINS EnvInject Pluginで)、gitがsshプロトコルで呼び出されるたびに、どのキーが使用されているかを確認します。

OPが追加されます:

I have chosen to delete the passphrase from the ssh key and it works correctly.

パスフレーズは、ユーザーアカウントではなく、ジェンキンスアカウントで実行されていたキャッシュしssh-agentを示唆しています。

0

おかげVonCメッセージ、私がデバッグジェンキンスを :

ssh -v bitbucket.org 

私は問題はジェンキンスパスフレーズ最後に

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

を依頼する端末を起動しようとしたことを見ることができるかもしれません私はsshキーからパスフレーズを削除することを選択し、正しく動作します。

+0

ssh -Tv bitbucket.orgを行うことができますが、パスフレーズを使用しない方が簡単です – VonC

+0

あなたの所見を解決するために私の答えを編集しました。 – VonC