1

そのため、Jenkins マスター コンテナーali_jenkins_mセットアップがあり、Jenkins データを格納するためのデータ ボリューム コンテナーali_jenkins_dataを使用してスピンアップします。

docker run -p 8080:8080 -p 50000:50000 --name ali_jenknins_master --volumes-from ali_jenkins_data -d ali_jenkins_m

TFS プラグインをセットアップし、TFS ブランチの 1 つをマップして、コードを Jenkins にプルしてビルドしました。jenkinsマスターコンテナali_jenkins_mを削除してから再作成するまで、すべてうまくいきました。再作成するときも、データ ボリューム コンテナー ali_jenkins_data を使用しました。すべてのデータは期待どおりに保持されていますが、Jenkins で TFS からビルドする際に問題が発生しています。

私が得るエラーは次のとおりです。

  Creating workspace 'HUDSON-MCA Continuous Development Build-MASTER' owned by 'DOMAIN\tfsbuild'...
FATAL: com.microsoft.tfs.core.exceptions.TECoreException: The workspace HUDSON-Development Build-MASTER;tfsbuild already exists on computer **a4d8cdb6981d**.

a4d8cdb6981d は、削除した ali_jenkins_m のコンテナー ID です。新しいコンテナ ali_jenkins_m には新しいコンテナ ID があります。これを機能させるために何を変更する必要があるかを把握するために、マウントのいたるところを見回しました。

任意のポインタをいただければ幸いです。

4

2 に答える 2

2

したがって、これは TFS の問題であり、Docker や Jenkins とは関係ありません。このコマンドを実行して、この問題を解決しました。

 tf workspace /delete /server:http://abc.xyz.eee:8080/tfs/IntlSysDev "HUDSON-MCA Continuous Development Build-MASTER";tfsbuild

この問題を解決するもう 1 つの方法は、docker run コマンドの実行時に -h オプションを使用してホスト名を指定することでした。したがって、上記の docker run コマンドは次のようになります。

docker run -p 8080:8080 -p 50000:50000 -h jenkinsali --name ali_jenknins_master --volumes-from ali_jenkins_data -d ali_jenkins_m

これはそれを行うためのより良い方法でした。これで、コンテナを再作成するたびに tf workspace /delete コマンドを実行する必要がなくなりました

于 2016-06-16T18:35:30.487 に答える
1

まったく同じ問題に遭遇しました (これは、名前付きコンピューターにマップされている TFS ワークスペースの問題です。これは、docker コンテナーを再起動しても同じです)。Team Foundation サイドキックを使用してワークスペースを削除しました。これにより、ワークスペースを操作するための優れた GUI が提供されます (アクセスできる場合は、他の人のワークスペースも)

  1. TFS サイドキックを開き、ツールに移動します --> ワークスペース サイドキック
  2. ワークスペースの詳細を指定します (hudson エラー メッセージに表示されます)
  3. ヒット検索
  4. 問題のあるワークスペースを見つけて削除します。
  5. ビルドをもう一度開始すると、すべてがうまくいくはずです!
于 2016-11-23T12:06:14.400 に答える