21

エラー:

Failed to connect to repository : Command "/usr/bin/git ls-remote -h file:///home/myuser/path/to/project HEAD" returned status code 128:
stdout:
stderr: fatal: 'home/myuser/path/to/project' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

私は次のことを試しました:

  • chmod 777repo フォルダー (.git ディレクトリを含むフォルダー) へ
  • chownedjenkins:jenkinsレポフォルダに
  • このローカル リポジトリ フォルダーから別のフォルダーにクローンしようとしました: これは機能します!

上記のコマンドを実行すると、/usr/bin/git ls-remote -h file:///home/myuser/path/to/project HEADcmd でブランチが取得されます。

私の質問は次のとおりです。

  1. git ls-remote -h ...コマンドが呼び出されるのはなぜgit clone ...ですか?
  2. ローカル リポジトリからコードを取得するように jenkins git プラグインを構成する方法

私の環境:

RHEL5.9

サービスとしてインストールされた Jenkins 1.519 (Web コンテナーなし)

Git プラグイン

4

6 に答える 6

23

サービスとしてインストールする場合Jenkins、デフォルトでJenkinsは、次のようなユーザー ディレクトリは作成されません/home/jenkins。Jenkins のデフォルトのホーム ディレクトリは に設定されてい/var/lib/jenkinsます。ご想像のとおり、私の回避jenkins策から、他のユーザーのディレクトリからローカル リソースにアクセスする際に問題が発生します。

複製したレポを Jenkins のデフォルトのホーム ディレクトリ、つまり下に移動し/var/lib/jenkinsたので、Repository URLJenkins プロジェクトの構成は次のようになります。file:///${JENKINS_HOME}/repo/<myprojectname>

更新:上記は正常に動作します ...しかし、このブログ からより良い方法を見つけました

手順の概要は次のとおりです。

スクリプトを検索し/etc/init.d/jenkinsます。いくつかの$JENKINS変数が定義されています。これにより、sysconfigfor jenkins ie が表示され/etc/sysconfig/jenkinsます。jenkins インスタンスを停止します。

sudo /sbin/service jenkins stop

バックアップを取る

cp /etc/sysconfig/jenkins /etc/sysconfig/jenkins.bak

このファイルで、次のプロパティを変更します。

$JENKINS_USER="<your desired user>"

関連するすべての Jenkins ディレクトリの所有権を変更します。

chown -R <your desired user>:<your user group> /var/lib/jenkins

chown -R <your desired user>:<your user group> /var/cache/jenkins

chown -R <your desired user>:<your user group> /var/log/jenkins

ジェンキンスを再起動すると、そのエラーは消えるはずです

sudo /sbin/service jenkins start

このエラーはすぐに解消されます。

于 2013-08-09T14:45:54.637 に答える
8

この質問が出されてからしばらく経ちましたが、今日この問題が発生し、リソースがほとんどありません。おそらく、人々はリモートで git リポジトリに接続する傾向があるためです。

strace を使用して、jenkins が正確に何を行っているかを確認しました。はい、パーミッションに問題がありました。

しかし、答え#2よりも簡単な方法で解決しました-ジェンキンをgitサーバーグループに追加することにより-私の場合はgit1: root# gpasswd -a jenkins git1 root# service jenkins restart

于 2014-04-22T20:46:22.490 に答える
6

WindowsでJenkinsを実行していますが、同じ問題がありました。Jenkins サービスを自分のユーザーとしてラップトップにログインさせることで、これを解決できました。

(Windows7)

  1. タスク マネージャーを開く (Ctrl + Shift + Escape)
    1. (Windows 10 のみ)More Detailsポップアップ ウィンドウの左下隅にある をクリックします。
  2. [サービス] タブに移動します
  3. Services...ボタンをクリックします
  4. サービスのリストで「Jenkins」を見つけます
  5. 「Jenkins」を右クリックし、「プロパティ」をクリックします
  6. Jenkins の [プロパティ]ウィンドウで [ログオン] タブをクリックします。
  7. [次のアカウントとしてログオン]で[このアカウント: ] を選択します。
  8. ユーザー名とパスワードを入力してください
  9. クリックOK
  10. Jenkins サービスを再起動します
  11. ボブはあなたのおじです。
于 2016-03-16T15:49:49.640 に答える
3
  1. Jenkins はgit clone、ワークスペースがプロジェクト用に構成されたときに初めてコマンドを使用します。さらなるインスタンスはgit ls-remoteコマンドを使用します。

  2. Jenkins を構成したときに同じ問題が発生しました。SSHキーをいじって解決しました。これも設定の問題のようです。Jenkins アカウントに SSH キーが設定されているかどうかを確認します。

また、提供されたリンクで SSH の構成の段階的な手順を参照してください。これは正確な解決策を提供しない場合がありますが、解決策を示すことができます。

http://oodlestechnologies.com/blogs/How-to-setup-Jenkins-With-Grails-on-Ubuntu

于 2013-07-01T02:02:40.143 に答える
0

他の解決策は私にとって少し「ハッキー」であることがわかりました。私がしたことは、Jenkins ホーム フォルダーを /Users/Shared/ から /Users/[myacccount]/ に移動することでした。このようにして、私の Jenkins は私のリポジトリと Android SDK にアクセスできるようになります (私が Jenkins を使用する場所であるため)。次に、JENKINS_HOME 環境変数を変更します。.bash_profile に JENKINS_HOME を入力してこれを行いました (ただし、これを行う方法は他にもあります)。

注:私はOSXを使用しています

于 2016-09-28T01:40:55.447 に答える