AITM reserva un rango contiguo de puertos Docker para los contenedores de todos los proyectos gestionados. Esta página explica cómo funciona ese conjunto de puertos y por qué la comprobación de CORS es una cuestión aparte.
Docker Ports & CORS Access
1. Un único conjunto de puertos compartido
AITM reserva un único rango contiguo de puertos Docker (por defecto 20000–20050, 50 puertos) para los contenedores de todos los proyectos gestionados. El rango se define en src/constants.ts de AITM y puede sustituirse mediante release/docker/.env (AITM_PROJECT_PORTS_START / AITM_PROJECT_PORTS_END), o en Settings → Projects & Memory (projectPortRange).
| Concepto | Qué controla | Dónde se configura |
|---|---|---|
| Rango de publicación de puertos Docker | qué puertos de contenedor publica Docker en el host para que un navegador pueda alcanzarlos | release/docker/.env (AITM_PROJECT_PORTS_START/_END) o Settings → Projects & Memory → projectPortRange |
| Orígenes permitidos por CORS | qué orígenes de navegador permite AITM a través de su OriginPolicy | configuración del servidor AITM, independiente del rango de puertos |
Se trata de un conjunto compartido, no de un puerto o una dirección IP dedicados por proyecto. El Web Port de un proyecto solo necesita estar dentro del rango publicado para ser accesible desde el navegador del host — AITM no asigna direcciones IP independientes por proyecto.
2. CORS es una segunda comprobación independiente
Que Docker publique un puerto y que AITM permita un origen CORS son dos condiciones separadas. Para que el contenedor de un proyecto sea accesible desde un navegador, deben cumplirse ambas: el puerto debe estar publicado por Docker Y el origen del navegador debe estar permitido por la OriginPolicy de AITM. Cumplir solo una de las dos no basta.
Orientación práctica
- Si el puerto del servidor de desarrollo/pruebas de un proyecto nuevo cae fuera del rango publicado, todo parecerá funcionar correctamente dentro del contenedor pero será inaccesible desde el navegador del host.
- La solución es mover el puerto del proyecto dentro del rango publicado (o ampliar
projectPortRangeen Settings) — no solicitar una nueva dirección IP. - Si el puerto es correcto pero el navegador sigue informando de un error de CORS, el problema es la
OriginPolicy, no el rango de puertos — es una comprobación distinta.