エンドポイント
GET /health. ステータス、製品名、稼働中のバージョンで答えます。デプロイメントは推測ではなく、確認できます。
システム要件
誰かが配備する前にコンテナが必要とするもの:内部のランタイム、公開するひとつのポート、保持すべきボリューム、そして私たちが推奨するホスト。
ひとつのコンテナに2つの言語ランタイム。2つ目には好みではなく具体的な理由があります。
| それが何か | 理由と確認場所 | |
|---|---|---|
| ベースイメージ | python:3.13-slim | 両方のビルドステージで同じベース。コンパイルされたものが、そのまま動きます。 Dockerfile:13 |
| Python | 3.13 以降 | 継続的インテグレーションで 3.13 でテスト済み。 pyproject.toml:9, .github/workflows/tests.yml:91 |
| .NET | 8.0 ランタイム | SDK ではなくランタイムのみ。Migrate は Tableau 自身の .NET Migration SDK をラップします。ランタイムはそれとともにイメージの中を移動します。 Dockerfile:101 |
| 実行ユーザー | uid 10001, user ttc | root はマウントされたボリュームの所有権を取るために一度だけ使われ、アプリケーションが始まる前に降格されます。 Dockerfile:188 |
| プロセッサアーキテクチャ | amd64 | arm64 ビルドは x86 ホストで問題なく読み込まれ、その後に起動に失敗します。アーキテクチャは配備の後ではなく、前に確認する価値があります。 |
統制されたアプリケーションはコンテナ内のループバックで応答します。ゲートウェイがそこに到達し、他は何も到達しません。
すべての 14 の統制されたアプリケーションはコンテナ内のローカルインターフェースに束縛され、決して公開されません。ひとつのポートがすべてのリクエストを運び入れ、ゲートウェイがそれぞれを所有するアプリケーションへ振り分け、あなたに代わって単一の Tableau セッションを保持します。
それは受け入れなければならない約束ではなく、確かめられる性質です。稼働中のコンテナの公開ポートを列挙すれば、そのリリースで内部にどんな顔ぶれがあろうと、ひとつだけ見つかります。
コンテナは平文のトラフィックを提供し、証明書を持ちません。トランスポートのセキュリティは、すでに運用している場所に留まります。
| それが何か | 理由と確認場所 | |
|---|---|---|
| 公開ポート | 既定で 8865 | PORT 環境変数で設定します。プロキシの後ろのデプロイメントでは、変更するのではなくマッピングするのが普通です。 Dockerfile:236 |
| アプリケーションポート | 8851 から 8869、ループバック上 | 統制された各アプリケーションはコンテナ内の 127.0.0.1 に束縛され、決して公開されません。ゲートウェイはそこに到達し、ネットワークは到達しません。 |
| 受信ルール | 80 と 443 は外部へ、管理アクセスは自社のアドレスから | アプリケーションポートそのものは公開されないままです。 |
| トランスポートセキュリティ | コンテナの手前で終端 | コンテナは常に平文の HTTP を提供し、証明書を持ちません。ロードバランサーやリバースプロキシがトランスポートセキュリティを担い、それはすでに他のすべてで行っている場所です。 |
| 転送ヘッダー | あなたが指定したときだけ信頼 | ヘッダーの信頼は既定でオフです。直接到達可能なコンテナは転送アドレスを無視します。 |
ひとつのボリュームが、再構築で失ってはならないすべてを保持します。バックアップすべきパスの指示だけでは何を失うかがわからないため、このページは中身を名指しします。
| それが何か | 値 | 理由と確認場所 |
|---|---|---|
| データボリューム | /app/data | ユーザーディレクトリ、変更台帳、管理監査ログ、セマンティックレイヤーのプロファイル、暗号化された接続レコード。 Dockerfile:215 |
| アーティファクトボリューム | /app/artifacts | Offboard が監査の求める成果物を書き出す場所。 |
| ボリュームサイズ | 推奨の 500 GB の範囲内 | ストアはデータベースではなく JSON と JSON Lines のファイルで、可観測性ログは 5 MB でローテーションし5ファイルを保持します。 |
| 所有権 | 起動のたびに修正 | エントリポイントは特権を落とす前にボリュームの所有権を取ります。以前のバージョンで作られたボリュームは読めるままで、黙って空にされることはありません。 |
| 秘密に隣接するファイル | 0600 でアトミックに書き込み | 書きかけのファイルは、切り詰められたものではなく、直前のファイルをそのまま残します。 |
Docker ホスト上のひとつのコンテナに、作業の余裕を。Boreon がプロビジョニングの目安として推奨する数字です。
| それが何か | 値 | 影響するもの |
|---|---|---|
| ホスト | Docker ホスト | すでに運用している任意の Docker ホスト上の、自己完結したひとつのコンテナ。オーケストレーターは不要です。 |
| メモリ | 8 GB RAM | 2つの言語ランタイムとヘッドレスブラウザが、ひとつのコンテナを共有します。 |
| 利用可能ディスク | 500 GB | イメージ、永続ボリューム、そして監査が求めるアーティファクトの余地をカバーします。 |
コンテナに尋ねれば、動いているバージョンで答えます。その数字については、このページを含むどのページより良い出典です。
GET /health. ステータス、製品名、稼働中のバージョンで答えます。デプロイメントは推測ではなく、確認できます。
30 秒ごと
4 秒
60 秒. ゲートウェイは、準備完了を報告する前にすべての統制されたアプリケーションの応答を待ちます。コールドスタートは再起動より遅くなります。
5