AITMは、管理対象のすべてのプロジェクトのコンテナ用に、連続した1つのDockerポート範囲を予約します。このページでは、そのポートプールの仕組みと、CORSチェックが別の問題である理由を説明します。

Docker Ports & CORS Access

1. 共有される1つのポートプール

AITMは、管理対象のすべてのプロジェクトのコンテナ用に、連続した1つのDockerポート範囲(デフォルトは20000–20050、50ポート)を予約します。この範囲はAITMのsrc/constants.tsで定義されており、release/docker/.env(AITM_PROJECT_PORTS_START / AITM_PROJECT_PORTS_END)またはSettings → Projects & Memory(projectPortRange)で上書きできます。

概念制御する内容設定場所
Dockerのポート公開範囲ブラウザから到達できるよう、Dockerがホストに公開するコンテナのポートrelease/docker/.env(AITM_PROJECT_PORTS_START/_END)またはSettings → Projects & Memory → projectPortRange
CORS許可オリジンOriginPolicyを通じてAITMが許可するブラウザのオリジンAITMサーバーの設定。ポート範囲とは独立しています

これは共有プールであり、プロジェクトごとに専用のポートやIPアドレスがあるわけではありません。プロジェクトのWeb Portが公開範囲内に収まっていれば、ホストのブラウザから到達できます — AITMがプロジェクトごとに個別のIPアドレスを割り当てることはありません。

2. CORSは独立した2つ目のチェック

Dockerがポートを公開することと、AITMがCORSオリジンを許可することは、2つの別個の条件です。プロジェクトのコンテナにブラウザから到達できるためには、両方が満たされる必要があります。つまり、ポートがDockerによって公開されていることかつ、ブラウザのオリジンがAITMのOriginPolicyによって許可されていることです。どちらか一方だけでは不十分です。

実践的なガイダンス

  • 新しいプロジェクトの開発/テストサーバーのポートが公開範囲の外にある場合、コンテナ内ではすべて正常に動作しているように見えても、ホストのブラウザからは到達できません。
  • 解決方法は、プロジェクトのポートを公開範囲内に移すこと(またはSettingsでprojectPortRangeを広げること)です — 新しいIPアドレスを要求することではありません。
  • ポートに問題がないのにブラウザがCORSエラーを報告する場合、原因はポート範囲ではなくOriginPolicyです — これは別のチェックです。