AITM rezerwuje jeden ciągły zakres portów Docker dla kontenerów wszystkich zarządzanych projektów. Ta strona wyjaśnia, jak działa ta pula portów i dlaczego kontrola CORS to osobna kwestia.
Docker Ports & CORS Access
1. Jedna wspólna pula portów
AITM rezerwuje jeden ciągły zakres portów Docker (domyślnie 20000–20050, 50 portów) dla kontenerów wszystkich zarządzanych projektów. Zakres jest zdefiniowany w src/constants.ts w AITM i można go nadpisać przez release/docker/.env (AITM_PROJECT_PORTS_START / AITM_PROJECT_PORTS_END) lub w Settings → Projects & Memory (projectPortRange).
| Pojęcie | Co kontroluje | Gdzie się to konfiguruje |
|---|---|---|
| Zakres publikowanych portów Docker | które porty kontenera Docker publikuje na hoście, aby przeglądarka mogła do nich dotrzeć | release/docker/.env (AITM_PROJECT_PORTS_START/_END) lub Settings → Projects & Memory → projectPortRange |
| Dozwolone źródła CORS | które źródła przeglądarki AITM przepuszcza przez swój OriginPolicy | konfiguracja serwera AITM, niezależna od zakresu portów |
To jest wspólna pula, a nie jeden dedykowany port czy adres IP na projekt. Web Port projektu musi jedynie mieścić się w opublikowanym zakresie, aby był osiągalny z przeglądarki na hoście — AITM nie przydziela osobnych adresów IP poszczególnym projektom.
2. CORS to druga, niezależna kontrola
Opublikowanie portu przez Docker i zezwolenie przez AITM na źródło CORS to dwa osobne warunki. Aby kontener projektu był osiągalny z przeglądarki, muszą być spełnione oba: port musi być opublikowany przez Docker ORAZ źródło przeglądarki musi być dozwolone przez OriginPolicy w AITM. Spełnienie tylko jednego z nich nie wystarcza.
Praktyczne wskazówki
- Jeśli port serwera dev/test nowego projektu wypada poza opublikowanym zakresem, wszystko będzie wyglądać na działające wewnątrz kontenera, ale będzie nieosiągalne z przeglądarki na hoście.
- Rozwiązaniem jest przeniesienie portu projektu do opublikowanego zakresu (lub poszerzenie
projectPortRangew Settings) — a nie żądanie nowego adresu IP. - Jeśli port jest w porządku, a przeglądarka nadal zgłasza błąd CORS, problem leży w
OriginPolicy, a nie w zakresie portów — to osobna kontrola.