2011-08-08 8 views
9

私はGitリポジトリをネットワーク上の共有フォルダからgitoliteを実行するSSHサーバに移動しました。 TeamCityの公開鍵/秘密鍵を追加し、VCSルートを指し示しました。これはすべてテスト接続で成功し、ビルド構成には保留中の変更が表示されます。しかしTeamCityがSSH Gitリポジトリから変更をフェッチするときにタイムアウト例外を解決する方法

、チームシティーは、私は次のエラーを取得するこれらの保留中の変更フェッチしようとします。

'git fetch' command failed. 
exception: Timeout exception 

は、私はそれが90秒後にタイムアウトしていることがわかりログを冗長にするために切り替える - それがあろうと、私は、通常の状況下で期待をこれらの変更をフェッチするのに数秒かかることがあります。

問題のトラブルシューティングを開始して以来、VCSルートを「デフォルトのプライベートキー」に変更し、必要な.sshフォルダにconfig、id_rsa、およびknown_hostsファイルを追加しました。これらのファイルに必要なものを入れるまで、指紋とパスワードメッセージがログに記録されていました。私のサーバーは、VCSルートにキーを指定したときと同じように、タイムアウト例外を再度返します。

コマンドラインからGitを実行すると、上記のように.sshフォルダが設定されていると、プロンプトなしでリポジトリを複製できます。これは、TCがデフォルトのSYSTEMアカウントの下でサービスとして実行されているのとは別のユーザーアカウントからのものですが、私が言ったように、TCが.sshフォルダの変更をピックアップしたアカウント。

何が間違っている可能性がありますか?

答えて

2

TeamCityサーバーのキーをセットアップしましたが、エージェント用にもこれを行っていますか?これは、構成でテスト接続が機能する理由を説明しますが、エージェントが実行されているときには機能しません。

問題をデバッグする簡単な方法:VCSの設定で

Automatically on serverに変更VCS Checkout mode、それが動作するかどうかを確認?

更新:

あなたはチームシティー・サーバにログインし、teamcityユーザーとしてあなたのgitリポジトリからmanula git cloneを実行できますか?あなたはそれが働いているのを見ることができ、また信頼できるホストなどとして保存することができます。

+0

私は(デフォルトで)サーバは、チェックアウトをして、送信されたと思いましたビルドエージェントへのソース。それは間違っていますか? – GraemeF

+0

@GraemeF - 「VCSチェックアウトモード」を確認できますか?私の更新された答えを見てください。 – manojlds

+0

デフォルトでは、すでに「自動的にサーバー上に」設定されています。 – GraemeF

0

私はチーム都市を使っていませんが、私は同様の問題に直面している継続的な統合のためにGOを使っています。

ビルドエージェントでタスクを実行しているユーザーの環境変数パスを確認できますか。 msysgitを使用している場合は、msysgitのbinフォルダとcmdフォルダの両方がパスに含まれている必要があります。

0

巨大なレポがあると起こります。あなたは次のrecommendationに従うことができます:

はOSXやLinux用のユーザーマシンでタイムアウトを増やし:

  1. 〜/作成します。SSH/configファイル(それがまだ存在しない場合)
  2. 例えば、ファイルにSSH ServerAliveInterval ServerAliveCountMaxの設定を追加します。

Host *
 ServerAliveInterval 86400
 ServerAliveCountMax 4

関連する問題