AITM reserviert einen zusammenhängenden Docker-Portbereich für die Container aller verwalteten Projekte. Diese Seite erklärt, wie dieser Port-Pool funktioniert und warum die CORS-Prüfung eine getrennte Angelegenheit ist.
Docker-Ports & CORS-Zugriff
1. Ein gemeinsamer Port-Pool
AITM reserviert einen einzigen zusammenhängenden Docker-Portbereich (Standard 20000–20050, 50 Ports) für die Container aller verwalteten Projekte. Der Bereich ist in src/constants.ts von AITM definiert und kann über release/docker/.env (AITM_PROJECT_PORTS_START / AITM_PROJECT_PORTS_END) oder in Settings → Projects & Memory (projectPortRange) überschrieben werden.
| Konzept | Was es steuert | Wo es konfiguriert wird |
|---|---|---|
| Docker-Portbereich für die Veröffentlichung | welche Container-Ports Docker auf dem Host veröffentlicht, damit ein Browser sie erreichen kann | release/docker/.env (AITM_PROJECT_PORTS_START/_END) oder Settings → Projects & Memory → projectPortRange |
| Erlaubte CORS-Origins | welche Browser-Origins AITM über seine OriginPolicy durchlässt | Serverkonfiguration von AITM, unabhängig vom Portbereich |
Es handelt sich um einen gemeinsamen Pool, nicht um einen dedizierten Port oder eine eigene IP-Adresse pro Projekt. Der Web Port eines Projekts muss lediglich im veröffentlichten Bereich liegen, um vom Host-Browser erreichbar zu sein — AITM vergibt keine eigenen IP-Adressen pro Projekt.
2. CORS ist eine zweite, unabhängige Prüfung
Dass Docker einen Port veröffentlicht und dass AITM einen CORS-Origin zulässt, sind zwei getrennte Bedingungen. Damit der Container eines Projekts aus einem Browser erreichbar ist, müssen beide erfüllt sein: Der Port muss von Docker veröffentlicht werden UND der Browser-Origin muss von der OriginPolicy von AITM erlaubt sein. Nur eine der beiden Bedingungen zu erfüllen genügt nicht.
Praktische Hinweise
- Liegt der Dev-/Test-Server-Port eines neuen Projekts außerhalb des veröffentlichten Bereichs, scheint innerhalb des Containers alles zu funktionieren, ist aber vom Host-Browser aus nicht erreichbar.
- Die Lösung besteht darin, den Port des Projekts in den veröffentlichten Bereich zu verlegen (oder
projectPortRangein den Settings zu erweitern) — nicht darin, eine neue IP-Adresse anzufordern. - Ist der Port in Ordnung, der Browser meldet aber trotzdem einen CORS-Fehler, liegt das Problem bei der
OriginPolicyund nicht beim Portbereich — es ist eine getrennte Prüfung.