AITM riserva un unico intervallo contiguo di porte Docker per i container di tutti i progetti gestiti. Questa pagina spiega come funziona quel pool di porte e perché il controllo CORS è una questione separata.

Porte Docker e accesso CORS

1. Un unico pool di porte condiviso

AITM riserva un unico intervallo contiguo di porte Docker (predefinito 20000–20050, 50 porte) per i container di tutti i progetti gestiti. L'intervallo è definito in src/constants.ts di AITM e può essere sovrascritto tramite release/docker/.env (AITM_PROJECT_PORTS_START / AITM_PROJECT_PORTS_END) oppure in Settings → Projects & Memory (projectPortRange).

ConcettoCosa controllaDove si configura
Intervallo di pubblicazione delle porte Dockerquali porte dei container Docker pubblica sull'host, affinché un browser possa raggiungerlerelease/docker/.env (AITM_PROJECT_PORTS_START/_END) oppure Settings → Projects & Memory → projectPortRange
Origini consentite da CORSquali origini del browser AITM lascia passare tramite il proprio OriginPolicyconfigurazione del server AITM, indipendente dall'intervallo di porte

Si tratta di un pool condiviso, non di una porta o di un indirizzo IP dedicato per progetto. La Web Port di un progetto deve semplicemente rientrare nell'intervallo pubblicato per essere raggiungibile dal browser dell'host — AITM non assegna indirizzi IP separati per ogni progetto.

2. CORS è un secondo controllo indipendente

La pubblicazione di una porta da parte di Docker e l'autorizzazione di un'origine CORS da parte di AITM sono due condizioni separate. Perché il container di un progetto sia raggiungibile da un browser devono essere soddisfatte entrambe: la porta deve essere pubblicata da Docker E l'origine del browser deve essere consentita dall'OriginPolicy di AITM. Soddisfarne una sola non basta.

Indicazioni pratiche

  • Se la porta del server di sviluppo/test di un nuovo progetto cade al di fuori dell'intervallo pubblicato, all'interno del container tutto sembrerà funzionare, ma il progetto sarà irraggiungibile dal browser dell'host.
  • La soluzione è spostare la porta del progetto all'interno dell'intervallo pubblicato (o ampliare projectPortRange in Settings) — non richiedere un nuovo indirizzo IP.
  • Se la porta è corretta ma il browser segnala comunque un errore CORS, il problema è l'OriginPolicy, non l'intervallo di porte — è un controllo separato.