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.

KonzeptWas es steuertWo es konfiguriert wird
Docker-Portbereich für die Veröffentlichungwelche Container-Ports Docker auf dem Host veröffentlicht, damit ein Browser sie erreichen kannrelease/docker/.env (AITM_PROJECT_PORTS_START/_END) oder Settings → Projects & Memory → projectPortRange
Erlaubte CORS-Originswelche Browser-Origins AITM über seine OriginPolicy durchlässtServerkonfiguration 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 projectPortRange in 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 OriginPolicy und nicht beim Portbereich — es ist eine getrennte Prüfung.