TeamCity 2020.1ヘルプ

TeamCityデータディレクトリ

TeamCityデータディレクトリは、TeamCityサーバーが構成設定、ビルド結果、および現在の操作ファイルを保存するために使用するファイルシステム上のディレクトリです。ディレクトリはすべての構成設定の主記憶域であり、TeamCityのインストールに不可欠なデータを保持しています。

ビルド履歴、ユーザーとそのデータ、その他のデータはデータベースに保存されます。ディレクトリおよびデータベースに格納されているデータの説明については、バックアップに関する注意事項を参照してください。

このドキュメントや他のTeamCity資料では、このディレクトリはしばしば .BuildServerと呼ばれています。別の名前が付いている場合は、.BuildServer を実際の名前に置き換えてください。

TeamCityデータディレクトリの場所

現在使用されているデータディレクトリの場所は、実行中のTeamCityサーバーインスタンスの管理 | グローバル設定ページで確認できます。参照リンクをクリックすると管理 | グローバル設定 | データディレクトリの参照タブが開き、ユーザーはディレクトリ内の新しいファイルをアップロードしたり、既存のファイルを変更したりできます。

現在のデータディレクトリの場所は、logs/teamcity-server.log ファイルでも利用できます(サーバーの起動時に "TeamCityデータディレクトリ:"行を探します)。

TeamCityの初期バージョンの1つからアップグレードする場合は、TeamCity 7.1より前のバージョンで、データディレクトリを以下の説明とは異なる方法(英語)で指定できることに注意してください。

場所の設定

TeamCityデータディレクトリの場所を設定するには、2つの方法があります。

  • 最初のサーバー起動時にUIフォームでそれを選択することにより (TeamCity .tar.gz または .exe ディストリビューションのみ)。次に、指定されたデータディレクトリが < TeamCity home directory >/conf/teamcity-startup.properties ファイルに保存されます。

  • TEAMCITY_DATA_PATH 環境変数を使用して手動で。この変数は、システム全体に適用することも、TeamCityサーバーを起動するユーザーに対して定義することもできます。変数を設定/変更した後、変更を有効にするためにコンピューターを再起動する必要がある場合があります。

最初の起動時に、TeamCityが環境変数として構成されたデータディレクトリの場所を見つけると、関連する起動画面をスキップして、検出されたパスを使用します。

TEAMCITY_DATA_PATH 環境変数が設定されておらず、< TeamCity home directory >/conf/teamcity-startup.properties ファイルでも定義されていない場合、デフォルトのTeamCityデータディレクトリの場所はユーザーのホームディレクトリになります(たとえば、Linuxでは $HOME/.BuildServer、Windowsでは %USERPROFILE%.BuildServer )。

データディレクトリの場所の選択に関する推奨事項

データディレクトリにはすべてのサーバーと構成されたプロジェクト設定が保存されるため、対応するアクセスレベルがないと、OSユーザーの読み取りおよび書き込みに使用できないことが重要です。関連するセキュリティノートを参照してください。

デフォルトでは、system ディレクトリはすべてのアーティファクトとビルドのビルドログを履歴に保存するため、非常に大きくなる可能性があるため、TeamCityデータディレクトリを非システムディスクに配置することをお勧めします。古いビルドの自動クリーニングを構成するには、クリーンアップページを参照してください。1つのローカルディスクですべてのアーティファクトを保存できない場合は、別のディスクを追加して、複数のアーティファクトパスを構成できます。

TeamCityは、TeamCityデータディレクトリへの信頼性のある永続的な読み取り/書き込みアクセスを想定しており、データディレクトリにアクセスできなくなると誤動作する可能性があることに注意してください。この誤動作は、ディレクトリが使用できない間、TeamCityの動作に影響を与える可能性があり、現在実行中のビルドのデータも破損する可能性があります。TeamCityは時々データディレクトリにアクセスできないことを許容できるはずですが、まれに、ディレクトリに保存されているデータが破損したり部分的に失われたりする場合があります。

特にTeamCityデータディレクトリがネットワークストレージ上にある場合は、< TeamCity Data Directory >/system/caches をローカルディスクまたは個別の専用ディスクに保存することをお勧めします。メインディレクトリから caches ディレクトリへのシンボリックリンクを作成するか、TeamCity 2020.1.1以降、TEAMCITY_SERVER_OPTS環境変数で指定できる teamcity.caches.path JVMシステムプロパティを介してパスを再定義できます。たとえば、次のようになります。

TEAMCITY_SERVER_OPTS=-Dteamcity.caches.path=<path to local caches directory>

caches ディレクトリには、VCSリポジトリのローカルクローンが格納されます。そのため、良好なパフォーマンスを提供することが重要です。ディレクトリの内容が失われた場合、再構築され、データは失われません。

TeamCityデータディレクトリの構造

TeamCityデータディレクトリの config サブディレクトリにはTeamCityプロジェクトの設定が含まれ、system サブディレクトリにはビルドログ、アーティファクト、およびデータベースファイル(デフォルトで内部データベース(HSQLDB)が使用されている場合)が含まれます。また、手動バックアップと復元に関する情報を検討して、どのデータがデータベースに保管されていて、どれがファイルシステムに保管されているかをよりよく理解することもできます。

  • BuildServer/config - プロジェクト、ビルド構成、および一般的なサーバー設定が格納されているディレクトリ

    • trash - 削除されたプロジェクトのバックアップコピー。手動で削除しても構いません。プロジェクトの復元の詳細については、使い方...を確認してください。

    • notifications - シンジケーションフィードテンプレートを含む通知テンプレートと通知設定

    • logging内部サーバーのログ設定ファイル。新しいファイルをディレクトリに手動で追加できます

    • projects - プロジェクト関連の設定をすべて含むディレクトリ。各プロジェクトには独自のディレクトリがあります。プロジェクト階層は使用されず、すべてのプロジェクトには "projects" の直下に対応するディレクトリがあります。

      • <projectID> - <projectID> IDを持つプロジェクトのすべての設定(ビルド構成設定およびサブプロジェクト設定を除く)を含むディレクトリ。必須のネストファイルがある場合は、新しいディレクトリを作成できます。ルートディレクトリには、ルートプロジェクトの設定が含まれています。 *.xml.N ファイルがディレクトリにあるときはいつでも、プロジェクト構成がWeb UIによって変更されたときに作成された対応するファイルのバックアップコピーです。これらのバックアップコピーはTeamCityでは使用されません。
        • buildNumbers - 対応するビルド設定の現在のビルド番号カウンターを格納する <buildConfigurationID>.buildNumbers.properties ファイルを含むディレクトリ

        • buildTypes - 対応するビルド構成またはテンプレート設定を含む <buildConfiguration or template ID>.xml ファイルのあるディレクトリ

        • pluginData - オプションおよびプラグイン関連のプロジェクトレベル設定を保存するディレクトリ。バンドルされたプラグイン設定とカスタムプロジェクトタブのような補助プロジェクト設定はディレクトリのplugin-settings.xmlファイルに格納されています。バージョン管理設定ごとにVCSの外部に保存された認証情報は secure/credentials.json ファイルに保存されます

        • vcsRoots - <VcsRootID>.xmlファイルにプロジェクトのVCSルート設定を含むディレクトリ

        • project-config.xml - パラメータークリーンアップ規則などのプロジェクト設定を含むプロジェクト構成ファイル。

    • main-config.xml - サーバー全体の設定

    • database.properties - データベース接続設定、外部データベースの設定で詳細を参照

    • license.keys - TeamCityに入力されたライセンスキーを保存するファイル

    • change-viewers.properties - 使用可能な場合は外部変更ビューアー構成プロパティ

    • internal.properties - さまざまな内部TeamCityプロパティを指定するためのファイル。デフォルトでは存在しません。必要に応じて作成する必要があります

    • auth-config.xml - サーバー全体の認証関連設定を格納するファイル

    • ldap-config.properties - LDAP認証構成プロパティ

    • ntlm-config.properties - Windowsドメイン認証構成プロパティ

    • issue-tracker.xml - 課題追跡システムの統合設定

    • cloud-profiles.xml - クラウド(Amazon EC2など)統合設定

    • backup-config.xml - Web UIバックアップ構成設定

    • roles-config.xml - ロール - 許可割り当てファイル

    • database.*.properties - さまざまな外部データベース用のデフォルトのテンプレート接続設定ファイル

    • *.dtd - XML設定ファイル用のDTDファイル

    • *.dist - .distなしの対応するファイル用のデフォルトのテンプレート設定ファイル。下記を参照してください。

  • .BuildServer/plugins - TeamCity起動時にTeamCityプラグインを自動的にロードするために格納できるディレクトリ。新しいプラグインをディレクトリに追加することができます。サーバーが稼働していない間に既存のものを削除することができます。プラグインの構造はプラグインのパッケージング(英語)に記述されています。

    • .tools - すべてのエージェントにインストールされるツールを一元管理するためにこのディレクトリを作成します。このフォルダーのフォルダーまたは .zip ファイルはすべてのエージェントに配布され、エージェントホームディレクトリフォルダーに表示されます。

  • .BuildServer/system - ビルド結果データが格納されているディレクトリ。ディレクトリの内容はTeamCityによって生成され、手動編集用ではありません。

    • artifacts - ビルドの成果物、ログ、その他のデータが保存されているデフォルトディレクトリ。成果物ストレージのフォーマットは <project ID>/<build configuration name>/<internal_build_id> です( 内部ビルドIDについて詳しく参照してください)。必要に応じて、各ビルドのディレクトリ内のファイルを手動で追加/削除することができます - これは対応するビルドのアーティファクトに反映されます。
      • .teamcity サブディレクトリには、ビルドの隠されたアーティファクトとビルドログが保存されます (以下を参照)。必要に応じてファイルを手動で削除できますが、ビルドはファイルに裏付けられた対応する機能を失うためお勧めしません(ビルドログ、スナップショットの依存関係としてのビルドの再利用、カバレッジレポートなど、完成したビルドパラメーターの表示/使用など)、等々)

        • logs サブディレクトリは、ビルドログを内部形式で保存します。ビルドログには、ビルド出力、コンパイルエラー、テスト出力、テスト失敗の詳細が保存されます。ファイルは必要に応じて手動で削除できますが、対応するビルドではビルドログと失敗の詳細(およびテストの失敗の詳細)が失われます。

    • messages - ビルドログがTeamCity 9.0より前に格納されていたディレクトリ。自動ビルドが成果物の新しい場所へのマイグレーションを記録した後、ディレクトリには移動できなかったファイルが保管されます(詳細については、サーバー開始のサーバー・ログを参照)。

    • changes - リモートの実行変更が内部フォーマットで保存されるディレクトリ。ディレクトリ内のファイルの名前には、内部の個人用変更IDが含まれています。必要に応じてファイルを手動で削除することができますが、対応する個人用ビルドはUIの個人的な変更を失い、影響を受けるキュービルドが開始しようとすると失敗したり、個人用パッチなしで実行されます。

    • pluginData - ビルド、現在のシステム状態などに関するさまざまなデータを格納するディレクトリ。このディレクトリを削除または変更することはお勧めできません。(たとえば、TeamCity 2018.2より前には、ビルド・トリガーの状態はこのディレクトリに保管されていました)。このディレクトリの内容はデータベースに格納されているデータに対応するため、データベースを復元するときは、データベースと整合性を保つためにこのディレクトリを同じ状態に復元する必要があります。

    • audit - ビルド設定変更の履歴を保持し、変更の差分を表示するために使用されるディレクトリ。関連データもデータベースに格納します。

    • repositoryStates - TeamCity 2018.2より前は、2018.2のデータベースに移動されたVCSルートの現在の状態を格納するために使用されていました。ドロップされた場合、TeamCityによっていくつかの変更が検出されない可能性があります(TeamCityによって最後に照会された状態と、このデータなしで最初のサーバーが始動した後の現在の状態の間)。

    • caches - (VCSリポジトリの内容、検索インデックスなどの)内部キャッシュを持つディレクトリ。キャッシュをクリアするために手動で削除することができます:それらは必要に応じて自動的に復元されます。サーバーが稼働していないときにディレクトリを削除した方が安全です。
      • .unpacked - 解凍されたサーバーサイドプラグインを保存するために自動的に作成されるディレクトリ。サーバーの稼働中には変更しないでください。サーバーが稼働していない場合は安全に削除できます。

    • buildserver.* - 組み込みHSQLDBに関する一連のファイル。

  • .BuildServer/backup - Web UIで作成されたバックアップアーカイブを保存するためのデフォルトディレクトリ。このディレクトリ内のファイルはTeamCityによって使用されず、安全のためにすでにコピーされている場合は安全に削除できます。

  • .BuildServer/lib/jdbc - TeamCityがデータベースドライバの検索に使用するディレクトリ。必要に応じてディレクトリを作成してください。TeamCityはディレクトリ内のファイルを管理するのではなく、必要なドライバを格納している.jarファイルをスキャンするだけです。

設定ファイルの直接変更

config ディレクトリのファイルは手動で編集することができます(特に明記しない限り)。変更はサーバーの再起動なしで考慮されます。TeamCityはこれらのファイルの変更を監視し、変更または新しいファイルが検出されると自動的に再読み込みします。これらのファイルの物理的または論理的な構造を壊すのは簡単なので、細心の注意を払って編集することを忘れないでください。変更を加える前に、必ずデータをバックアップしてください。

ファイルのフォーマットはより新しいTeamCityバージョンと変わることができるためファイル更新手順はアップグレードの後で調整を必要とするかもしれないことに注意してください。

REST APIは最も一般的な設定編集のための手段を持ち、サーバーアップグレード後に機能するという点でより安定しています。

.distテンプレート設定ファイル

手動編集用の設定ファイルの多くは、次の規則を使用しています。

  • ファイル(名前 fileNameとする)と一緒にファイル fileName.distがあります。 .dist ファイルはデフォルトのサーバー設定を保存するためのもため、fileName 設定のサンプルとして使用できます。 .dist ファイルはサーバーを起動するたびに上書きされるため、手動で編集しないでください。また、.dist ファイルは、fileName ファイルがユーザーによって変更されたかどうかを判断するためにサーバーのアップグレード中に使用されます。

XML構造と参照

手動で設定を変更する予定の場合は、IDで相互にリンクされたエントリがあることに注意してください。そのようなエントリの例はビルド構成-> VCSルートリンクおよびプロジェクト->親プロジェクトリンクです。同じタイプのすべてのエントリーは、サーバー全体で固有のIDを持っていなければなりません。新しいエントリは、それらのIDが一意の場合にのみ追加できます。

TeamCityサーバー間でのプロジェクトの移動に関する関連セクションも参照してください。

関連ページ:

外部データベースの設定

TeamCityはビルド履歴、ユーザー、ビルド結果、いくつかのランタイムデータをSQLデータベースに保存します。手動バックアップと復元ページのどこに格納されているかの説明も参照してください。本番用に推奨されていない内部データベースを使用してTeamCityを評価した場合は、外部データベースへの移行を...

クリーンアップ

TeamCityのクリーンアップ機能により、古いビルドデータや不要なビルドデータを自動的に削除できます。サーバーのクリーンアップ構成は管理 | サーバー管理 | クリーンアップ設定で使用可能です。クリーンアップスケジュールの設定が可能で、一般的なクリーンアップ情報が表示されます。特定のプロジェクトに...

外部変更ビューアー

TeamCity supports integration with external changes viewers like JetBrains Upsource, Atlassian Fisheye, and so on.TeamCity 2017.2以降, some of the viewe...

パーソナルビルド

パーソナルビルドとは、一般的なビルドシーケンスのビルドアウトであり、通常、バージョン管理にまだコミットされていない変更を使用します。通常、パーソナルビルドは、リモート実行プロシージャを介して、サポートされているIDEの 1つから開始されます。以下に説明するように、変更を含むパッチをサーバーに直接アッ...

REST API

TeamCityは、外部アプリケーションを統合し、TeamCityサーバーとのスクリプト相互作用を作成するためのREST APIを提供します。このページは3つのメインセクションで構成されています。一般情報は、REST API認証の原理、リクエストの構造、サポートされるHTTPメソッドについて説明して...