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).
| Concetto | Cosa controlla | Dove si configura |
|---|---|---|
| Intervallo di pubblicazione delle porte Docker | quali porte dei container Docker pubblica sull'host, affinché un browser possa raggiungerle | release/docker/.env (AITM_PROJECT_PORTS_START/_END) oppure Settings → Projects & Memory → projectPortRange |
| Origini consentite da CORS | quali origini del browser AITM lascia passare tramite il proprio OriginPolicy | configurazione 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
projectPortRangein 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.