TeamCity データディレクトリ
TeamCity データディレクトリは、TeamCity サーバーが構成、ビルド結果、現在の操作ファイルを保存するために使用する、ファイルシステム上のディレクトリです。 このディレクトリは、すべての構成設定の主要なストレージであり、TeamCity インストールに不可欠なデータを保持します。
ビルド履歴、ユーザーとそのデータ、その他のデータは データベースに保存されます。 ディレクトリとデータベースに保存されるデータの説明については、 バックアップに関する注意事項を参照してください。
このドキュメントや他の TeamCity 資料では、このディレクトリは多くの場合 .BuildServer と呼ばれます。 別の名前が付いている場合は、 .BuildServer を実際の名前に置き換えてください。
TeamCity データディレクトリの場所
現在使用されているデータディレクトリの場所は、実行中の TeamCity サーバーインスタンスの 管理 | グローバル設定 ページで確認できます。 閲覧 リンクをクリックすると 管理 | グローバル設定 | データディレクトリを閲覧 タブが開き、ユーザーはディレクトリ内の新しいファイルをアップロードしたり、既存のファイルを変更したりできます。
現在のデータディレクトリの場所は、 logs/teamcity-server.log ファイルでも確認できます (サーバーの始動時に "TeamCity データディレクトリ:" 行を探してください)。
場所の構成
TeamCity データディレクトリの場所を設定する方法は三つあります:
初回サーバー始動時に UI フォームで選択することで。 指定されたデータディレクトリは、
<TeamCity ホームディレクトリ>/conf/teamcity-startup.propertiesファイルに保存されます。TEAMCITY_DATA_PATH環境変数 を使用して手動で設定します。 この変数は、システム全体に適用することも、TeamCity サーバーを起動するユーザーに対して定義することもできます。teamcity.data.pathJVM プロパティ を指定して手動。
初回の始動時に TeamCity が環境変数として構成されたデータディレクトリの場所を検出すると、関連する始動画面をスキップし、検出されたパスを使用します。
TEAMCITY_DATA_PATH 環境変数が設定されておらず、 <TeamCity ホームディレクトリ>/conf/teamcity-startup.properties ファイルでも定義されていない場合、デフォルトの TeamCity データディレクトリの場所はユーザーのホームディレクトリになります (たとえば、Linux では $HOME/.BuildServer 、Windows では %USERPROFILE%/.BuildServer です)。
データディレクトリの場所を選択する際の推奨事項
データディレクトリにはすべてのサーバーと構成されたプロジェクトの設定が保存されるため、対応するアクセスレベルを持たない OS ユーザーが読み取りや書き込みを行えないことが重要です。 関連する セキュリティノートを参照してください。
デフォルトでは、 system ディレクトリには、履歴にあるビルドのすべての アーティファクト とビルドログが保存され、サイズがかなり大きくなる可能性があるため、TeamCity データディレクトリをシステム以外のディスクに配置することをお勧めします。 古いビルドの自動クリーニングを構成するには、 クリーンアップページを参照してください。 単一のローカルディスクにすべてのアーティファクトを保存できない場合は、別のディスクを追加して、 複数のアーティファクトパスを構成できます。
TeamCity は TeamCity データディレクトリへの信頼性が高く永続的な読み取り/書き込みアクセスを前提としており、データディレクトリにアクセスできなくなると誤動作する可能性があります。 この誤動作は、ディレクトリが使用できない間、TeamCity の動作に影響する可能性があり、現在実行中のビルドのデータを破損する可能性もあります。 TeamCity はデータディレクトリに一時的にアクセスできない状態には耐えられるはずですが、まれな状況では、ディレクトリに保存されたデータが破損したり、一部失われたりする可能性があります。
<TeamCity データディレクトリ>/system/caches は、特に TeamCity データディレクトリがネットワークストレージ上にある場合、ローカルディスク、または別の専用ディスクに保存することをおすすめします。 メインディレクトリから キャッシング ディレクトリへのシンボリックリンクを作成するか、TEAMCITY_SERVER_OPTS 環境変数で指定できる teamcity.caches.path JVM システムプロパティを使ってそのパスを再定義できます。たとえば:
キャッシング ディレクトリには VCS リポジトリのローカルクローンが保存されるため、十分なパフォーマンスを確保することが重要です。 ディレクトリの内容が失われた場合は再構築され、データは失われません。
構成ファイルをバージョン管理にアップロードする
TeamCity を設定して、 .BuildServer/config ディレクトリ (_trash サブフォルダーを除く) から外部 VCS リポジトリにファイルをプッシュできます。 この設定により、次のことが可能になります。
すべての構成変更を監視します。 サーバー構成ファイルへの各編集は個別のコミットとして自動的にプッシュされるため、変更履歴を確認して調査できます。
設定ファイルが破損した場合は、サーバーを復元します。 ロールバックするには、TeamCity サーバーをシャットダウンし、リポジトリの以前のリビジョンから
.BuildServer/configディレクトリにファイルをプルします。
サーバーの構成ファイルを保存するリポジトリを設定するには:

構成ファイルによって機密データが公開されないように、データディレクトリを保護します。
パスワード、シークレット、SSH キー、その他の機密データを保護するために、カスタム 暗号化キーを設定します。 これには、
TEAMCITY_ENCRYPTION_KEY環境変数の使用をお勧めします。管理 | グローバル設定 ページから再暗号化プロセスを開始します。 このアクションにより、新しいカスタム暗号化キーが既存のすべての機密値に適用されます。
外部データベースの資格情報を
config/データベース.propertiesファイルから 対応する環境変数に移動します。 TeamCity は完全に起動する前にデータベース接続が必要なため、このファイルを暗号化しません。そのため、これらの値を環境変数に移動して隠すことをおすすめします。
さらに、構成ファイルが保存されている Git リポジトリには、信頼できるユーザーのみがアクセスできることを確認してください。
管理 | 構成リポジトリ に移動します。
構成ファイルの変更を構成リポジトリにコミット にチェックマークを付けます。
リポジトリへのパスを SSH 形式で入力します。
構成ファイルを保存するリポジトリブランチの完全な名前 (
heads/refs/<名前>) を入力します。TeamCity が SSH 経由でリポジトリにアクセスできるように、秘密鍵をアップロードします。
自動インクリメンタープラグイン(英語)をご利用の場合は、最新バージョンにアップデートすることをお勧めします。
TeamCity データディレクトリの構造
TeamCity データディレクトリの 設定 サブディレクトリには TeamCity プロジェクトの構成が含まれ、 system サブディレクトリにはビルドログ、アーティファクト、データベースファイルが含まれます (デフォルトである内部データベース (HSQLDB) が使用されている場合)。 手動バックアップと復元 に関する情報を確認して、どのデータがデータベースに保存され、どのデータがファイルシステム上にあるかをよりよく理解することもできます。
BuildServer/config— プロジェクト、ビルド構成、一般的なサーバー設定が保存されるディレクトリ。_trash— 削除されたプロジェクトのバックアップコピー。手動で削除しても問題ありません。 プロジェクトの復元の詳細については、 操作手順 を確認してください。通知— 通知テンプレートと通知構成設定。logging— 内部サーバーログ の構成ファイル。新しいファイルをディレクトリに手動で追加できます。projects— すべてのプロジェクト関連の設定が含まれるディレクトリ。 各プロジェクトには独自のディレクトリがあります。 プロジェクト階層は使用されず、すべてのプロジェクトは「プロジェクト」の直下に対応するディレクトリを持ちます。<projectID>—<projectID>ID を持つプロジェクトのすべての設定 (ビルド構成設定を含み、サブプロジェクト設定は除く) を含むディレクトリ。 必須のネストされたファイルがある場合、新しいディレクトリを作成できます。 ルートディレクトリには、 ルートプロジェクトの設定が含まれます。 ディレクトリに*.xml.Nファイルがある場合は、Web UI 経由でプロジェクト構成が変更されたときに作成された対応するファイルのバックアップコピーです。 これらのバックアップコピーは TeamCity では使用されません。buildNumbers— 対応するビルド構成の現在のビルド番号カウンターを格納する<buildConfigurationID>.buildNumbers.propertiesファイルを含むディレクトリ。buildTypes— 対応するビルド構成またはテンプレート設定を持つ<ビルド構成またはテンプレート 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-設定.プロパティ— Windows ドメイン認証 の構成プロパティ。issue-tracker.xml— トラッカー統合設定を発行します。backup-config.xml— WebUI バックアップ構成設定。roles-config.xml— ロール - 権限割り当てファイル。database.*.properties— さまざまな外部データベースのデフォルトのテンプレート接続設定ファイル。*.dtd— XML 構成ファイルの DTD ファイル。*.dist—配布版のない対応するファイルのデフォルトのテンプレート構成ファイル。 以下を参照してください。
.BuildServer/plugins— TeamCity プラグインを保存して、TeamCity の起動時に自動的に読み込むことができるディレクトリ。 新しいプラグインをディレクトリに追加できます。 サーバーが稼働していないときに、既存のものを削除できます。 プラグインの構造は プラグインのパッケージング(英語)で説明されています。.tools— このディレクトリを作成して、すべてのエージェントにインストールするツールを一元化します。 このフォルダー配下の任意のフォルダーまたは.zipファイルは、すべてのエージェントに配布済みとなり、 エージェントホームディレクトリフォルダーの下に表示されます。
.BuildServer/system— ビルド結果データが保存されるディレクトリ。 ディレクトリの内容は TeamCity によって生成され、手動編集を目的としていません。アーティファクト— ビルドのアーティファクト、ログ、その他のデータが保存される デフォルトディレクトリ。 アーティファクトストレージのフォーマットは<project ID>/<build configuration name>/<internal_build_id>です (内部ビルド ID について続きを読む)。 必要に応じて、各ビルドのディレクトリ内のファイルは手動で追加/除去できます — これは対応するビルドのアーティファクトに反映されます。.teamcityサブディレクトリには、ビルドの 非表示アーティファクト とビルドログが保存されます (下記参照)。 必要に応じて、ファイルを手動で削除できますが、ビルドがそれらのファイルに支えられている対応機能 (ビルドログ、スナップショット依存関係としてのビルド再利用を含む完了済みビルドパラメーターの表示/使用、カバレッジレポートなど) を失うため、おすすめしませんlogsサブディレクトリは、 ビルドログを内部フォーマットで保存します。 ビルドログには、ビルド出力、コンパイルエラー、テスト出力、テスト失敗の詳細が保存されます。 必要に応じてファイルを手動で削除できますが、対応するビルドではビルドログと失敗の詳細 (およびテスト失敗の詳細) が失われます。
messages— ディレクトリには、移動できなかったファイルが格納されます(詳細については、サーバー起動時のサーバーログを参照してください)。変更— リモート実行の変更が内部形式で保存されるディレクトリ。 ディレクトリ内のファイルの名前には、内部の個人変更 ID が含まれます。 必要に応じて、ファイルを手動で削除できますが、対応する個人ビルドでは UI の個人変更が失われ、影響を受けるキュービルドを開始しようとすると、失敗するか、個人パッチなしで実行されます。pluginData— ビルド、現在のシステム状態などに関するさまざまなデータを格納するディレクトリ。 このディレクトリを削除または変更することはお勧めしません。 このディレクトリの内容はデータベースに保存されているデータに対応しているため、データベースを復元するときは、データベースとの整合性を保つために、このディレクトリを同じ状態に復元する必要があります。監査— ビルド構成の変更の履歴を保持し、変更の差分を表示するために使用されるディレクトリ。 また、関連データをデータベースに保存します。キャッシング— 内部キャッシング (VCS リポジトリの内容、検索インデックス、その他) を含むディレクトリ。 キャッシングをクリアするために 手動で削除できます。キャッシングは必要に応じて自動的に復元されます。 サーバーが実行されていない間にディレクトリを削除する方が安全です。.unpacked— 解凍されたサーバー側プラグインを格納するために自動的に作成されるディレクトリ。 サーバーの実行中に変更しないでください。 サーバーが実行されていない場合は、安全に削除できます。
buildserver.*— 組み込み HSQLDB に関連するファイルのセット。
.BuildServer/backup— Web UI 経由で作成されたバックアップアーカイブを保存するデフォルトのディレクトリ。 このディレクトリ内のファイルは TeamCity では使用されず、保管のためにすでにコピーされている場合は安全に除去できます。.BuildServer/lib/jdbc— TeamCity が データベースドライバーを検索するために使用するディレクトリ。 必要に応じてディレクトリを作成してください。 TeamCity はディレクトリ内のファイルを管理せず、必要なドライバーを格納する.jarファイルのみをスキャンします。
構成ファイルの直接変更
設定 ディレクトリのファイルは手動で編集できます (明示的に指定されていない限り)。 変更はサーバーを再起動せずに反映されます。 TeamCity はこれらのファイルの変更を監視し、変更または新しいファイルが検出されると自動的に再読み込みします。 これらのファイルの物理構造または論理構造は簡単に壊れる可能性があるため、編集には細心の注意を払ってください。 変更を行う前に必ずデータを バックアップしてください。
ファイルのフォーマットは新しい TeamCity バージョンで変更される可能性があるため、アップグレード後にファイル更新プロシージャの調整が必要になる場合があります。
REST API は最も一般的な設定編集のための手段を持ち、サーバーアップグレード後に機能するという点でより安定しています。
.dist テンプレート構成ファイル
手動編集用の設定ファイルの多くは、次の規則を使用しています。
(
ファイル名という名前の)ファイルと一緒に、ファイルfileName.distが作成されます。配布版ファイルは、デフォルトのサーバー設定を保存するためのものであり、ファイル名構成のサンプルとして使用できます。配布版ファイルは、サーバーを起動するたびに上書きされるため、手動で編集しないでください。 また、ファイル名ファイルがユーザーによって変更されたかどうか、後者を更新できるかどうかを決定するために、サーバーのアップグレード中に配布版ファイルが使用されます。
XML 構造と参照
構成を手動で変更する場合は、 ID によって相互リンクされたエントリがあることに注意してください。 このようなエントリの例としては、 ビルド構成 -> VCS ルート リンクや プロジェクト -> 親プロジェクト リンクがあります。 同じタイプのすべてのエントリは、サーバー全体で一意の ID を持つ必要があります。 新しいエントリは、その ID が一意である場合にのみ追加できます。
TeamCity サーバー間でのプロジェクト移動については、関連する セクション も参照してください。