9

Git リポジトリを、ネットワーク上の共有フォルダーから、gitolite を実行している SSH サーバーに移動しました。TeamCity が使用する公開/秘密キーを追加し、VCS ルートを指定しました。テスト接続が成功し、ビルド構成に保留中の変更が表示されるため、これはすべて正常に機能します。

ただし、TeamCity が保留中の変更をフェッチしようとすると、次のエラーが発生します。

'git fetch' command failed.
exception: Timeout exception

詳細ログに切り替えると、90 秒後にタイムアウトしたことがわかります。通常の状況では、これらの変更を取得するのに数秒かかると予想されます。

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

コマンド ラインから Git を実行すると、プロンプトを表示せずにリポジトリのクローンを作成できます (上記のように .ssh フォルダーを設定している場合)。TC はデフォルトの SYSTEM アカウントでサービスとして実行されているため、これは別のユーザー アカウントからのものですが、先ほど言ったように、TC がそのための .ssh フォルダーへの変更を取得したことがわかるため、それが原因だとは思いません。アカウント。

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

4

3 に答える 3

2

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

問題をデバッグする簡単な方法:

VCS 設定で、変更VCS Checkout modeAutomatically on serverて動作するかどうかを確認します。

アップデート:

TeamCity サーバーにログインして、ユーザーgit cloneとして git リポジトリから manula を実行teamcityできますか? このようにして、それが機能していることを確認し、信頼できるホストなどとして保存することもできます.

于 2011-08-08T16:17:41.157 に答える
0

巨大なレポがある場合に発生します。次の推奨事項に従うことができます:

OSX または Linux のユーザー マシンのタイムアウトを増やします。

  1. ~/.ssh/config ファイルを作成します (まだ存在しない場合)
  2. SSH ServerAliveInterval ServerAliveCountMax 設定をファイルに追加します。

ホスト *
 ServerAliveInterval 86400
 ServerAliveCountMax 4

于 2016-10-07T07:50:49.637 に答える
0

私はチームシティを使用していませんが、同様の問題に直面した継続的インテグレーションに GO (thinkworks から) を使用しました。

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

于 2012-06-25T06:21:57.097 に答える