エラー:
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 777
リポジトリフォルダー(.gitディレクトリを含むフォルダー)chowned
からjenkins:jenkins
リポジトリフォルダ上上記のコマンドを実行すると:/usr/bin/git ls-remote -h file:///home/myuser/path/to/project HEAD
on cmd私はブランチを取得します。
私の質問は次のとおりです。
git ls-remote -h ...
必要なときに呼び出されるコマンドgit clone ...
?私の環境:
RHEL 5.9
Jenkins 1.519がサービスとしてインストールされています(Webコンテナなし)
Jenkins
をサービスとしてインストールする場合、デフォルトでは、Jenkins
は/home/jenkins
のようにユーザーディレクトリを作成しません。 Jenkinsのデフォルトのホームディレクトリは/var/lib/jenkins
に設定されています。私の回避策から、ご想像のとおり、jenkins
は他のユーザーディレクトリからローカルリソースにアクセスするのに問題があります。
クローンリポジトリをJenkinsのデフォルトのホームディレクトリの下、つまり/var/lib/jenkins
の下に移動したので、Repository URL
in Jenkinsプロジェクト構成は次のようになります:file:///${JENKINS_HOME}/repo/<myprojectname>
UPDATE:上記は問題なく動作します...しかし、 このブログ からそれを行うためのより良い方法を見つけました
手順の概要は次のとおりです。
/etc/init.d/jenkins
スクリプトを検索します。いくつかの$JENKINS
変数が定義されています。これにより、ジェンキンスのsysconfig
、つまり/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
Jenkinsを再起動すると、そのエラーは消えるはずです
Sudo /sbin/service jenkins start
このエラーは今すぐ消えるはずです!
この質問が出されて久しぶりですが、今日この問題があり、リソースがほとんどありません。おそらく、人々はgitリポジトリにリモートで接続する傾向があるためです。
Straceを使用して、jenkinsが正確に何をしているかを確認しましたが、はい、権限に問題がありました。
しかし、私は答え2よりも簡単な方法でそれを解決しました-gitサーバーグループにジェンキンスを追加することで-私の場合、git1:root# gpasswd -a jenkins git1 root# service jenkins restart
WindowsでJenkinsを実行していますが、同じ問題が発生しました。 Jenkinsサービスをラップトップにユーザーとしてログインさせることで、これを解決することができました。
(Windows 7)
Jenkinsがgit clone
コマンドを使用するのは、プロジェクト用にワークスペースが構成されているときのみです。その他のインスタンスはgit ls-remote
コマンドを使用します。
Jenkinsを構成したときに同じ問題が発生しました。 SSHキーをいじって解決しました。これも構成の問題のようです。 JenkinsアカウントにSSHキーが設定されているかどうかを確認します。
また、提供されているリンクで、SSHの構成手順をステップごとに参照してください。これは正確な解決策を提供しないかもしれませんが、解決策を示すことができます。
http://oodlestechnologies.com/blogs/How-to-setup-Jenkins-With-Grails-on-Ubunt
file:///
の代わりに、ssh://
を この答え のように使用することもできます。
ssh://YOUR_USER@localhost/PATH_TO_YOUR_PROJECT
標準のsshセットアップを行う必要があることに注意してください。
ssh-keygen
にまだキーペアがない場合は、~/.ssh
を使用してキーペアを生成します~/.ssh/id_rsa
)をJenkins(プロジェクト設定、gitリポジトリ、資格情報)に貼り付けます~/.ssh/authorized_keys
に貼り付けます他の解決策は私にとって少し「ハッキー」だと思います。私が行ったのは、Jenkinsホームフォルダを/ Users/Shared /から/ Users/[myacccount] /に移動することでした。このようにして、私のJenkinsは私のリポジトリと私のAndroid SDKにアクセスできるようになります(Jenkinsを使用する場所であるため)。次に、JENKINS_HOME環境変数を変更します。これを行うには、にJENKINS_HOMEを入力します。私の.bash_profile(ただし、これを行う方法は他にもあります)。
注:私はOSXを使用しています