25 de octubre de 2026
Imágenes Docker personalizadas
Enterprise 28, Enterprise 30 y Enterprise 32 ya pueden construir una imagen a partir de su propioDockerfile y ejecutar aplicaciones con ella. Úsala para otro lenguaje o versión, paquetes del sistema, tu propio proceso de arranque o aplicaciones ya hechas.- Crea una imagen desde un archivo ZIP de hasta 100 MB, o desde un repositorio de GitHub. La rama es opcional: si no la indicas, se usa la rama predeterminada del repositorio. Un repositorio de tus instalaciones de la GitHub App se vincula, así que cada push reconstruye la imagen; un repositorio público fuera de ellas se construye una sola vez, sin vínculo. En el panel, Nuevo proyecto también tiene la opción Usar imagen Docker para crear una aplicación a partir de una imagen que ya tengas. El proyecto necesita un archivo llamado exactamente
Dockerfileen su raíz. La imagen se construye en un entorno de build aislado con un límite de 26 minutos, y el resultado puede llegar a 10 GB. Cada cuenta puede tener hasta 20 imágenes. - Revisa antes de construir. El panel revisa tu
Dockerfileantes de que empiece el build: las instrucciones que debilitarían el aislamiento del build se rechazan, y los errores habituales, como los archivos.enven el proyecto, se señalan para que los corrijas. Los archivos.env*nunca entran en la imagen, y tuDockerfilenunca se reescribe. Consulta qué se rechaza y qué se advierte. - Crea aplicaciones desde la imagen. Varias aplicaciones pueden compartir una imagen, cada una con sus propias variables. En una aplicación web, el puerto es el primer
EXPOSEdelDockerfile, o 80, y llega a tu aplicación comoPORT. Una aplicación creada sin la web puede publicarse más adelante indicando el puerto. - Actualiza la imagen subiendo un contexto nuevo, con un commit encima del contexto actual, o con un push a una rama de GitHub vinculada (vincula un repositorio de tus instalaciones de la GitHub App; la rama es opcional). La GitHub Action acepta
image-idpara reconstruir una imagen. Una reconstrucción nunca reinicia tus aplicaciones: cada una pasa a la nueva versión cuando la reinicias o la despliegas. - Versiones y rollback. Cada build correcto es una versión. Las aplicaciones conservan 30 releases durante 30 días, y un rollback inicia una versión que ya estaba construida.
- Snapshots de estas aplicaciones contienen los datos de
/appy la versión de la imagen. Al restaurar, también puedes volver a esa versión si todavía existe. - Renombrar y describir. Puedes dar una descripción a una imagen (de hasta 128 caracteres) al crearla, y renombrarla o cambiar su descripción después en el panel, la API, los SDK, la CLI, el servidor MCP o la extensión de VS Code. No se reconstruye nada y tus aplicaciones siguen ejecutándose.
- Eliminar una imagen elimina cada aplicación creada a partir de ella, después de que escribas el nombre de la imagen.
- En la extensión de VS Code. Una nueva vista de Imágenes Docker muestra tus imágenes y sus aplicaciones. Desde ahí puedes crear una imagen desde una carpeta o un repositorio de GitHub, reconstruirla, seguir el log del build, consultar las versiones, vincular una rama de GitHub, eliminarla y crear una aplicación a partir de ella. El despliegue, la publicación y la restauración de snapshots de las aplicaciones de imagen también funcionan desde la extensión, y una nueva aplicación desde una carpeta con un
Dockerfileofrece crear una imagen en su lugar.
/v1/images (incluido PATCH /v1/images/{image_id} para renombrar y describir) y POST /v1/apps/image, con los nuevos ámbitos de clave de API images:read, images:write e images:delete (eliminar una imagen que tiene aplicaciones también necesita apps:delete, y subir archivos a una aplicación que ejecuta una imagen también necesita images:write), y los nuevos códigos de error PLAN_DOES_NOT_SUPPORT_CUSTOM_IMAGES, MAX_IMAGES_REACHED, IMAGE_NOT_FOUND, IMAGE_VERSION_NOT_FOUND, IMAGE_BUILD_IN_PROGRESS, IMAGE_NOT_READY, IMAGE_BUILDER_UNAVAILABLE, IMAGE_CONTEXT_TOO_LARGE, IMAGE_NAME_MISMATCH, IMAGE_TOO_LARGE, IMAGE_LABEL_REFUSED, IMAGE_VOLUME_REFUSED, IMAGE_APP_PORT_REQUIRED, IMAGE_APP_FIELD_NOT_APPLICABLE, IMAGE_APP_CODE_NOT_APPLICABLE, DOCKERFILE_NOT_FOUND y DOCKERFILE_REFUSED. Lee la guía y la referencia de la API.Mejoras
- Elige la rama de tus despliegues de GitHub. Importar un repositorio de GitHub en el panel ahora tiene un selector de rama, y el despliegue automático sigue la rama que elijas (la ruta del webhook de despliegue acepta un
branchopcional). Los despliegues automáticos existentes siguenmainymaster. - Enlaces para desarrolladores en la barra lateral. CLI, extensión de VS Code, MCP, Novedades y Docs pasaron del menú de la cuenta a la barra lateral del panel.
- Tema con un clic. La apariencia en el menú de la cuenta es ahora un único botón que cambia entre Sistema, Claro y Oscuro.
- Eliminar una aplicación espera al resultado. El cuadro de confirmación se mantiene abierto con su progreso hasta que termina la eliminación, y entonces se cierra con la aplicación ya fuera de la lista. Si la eliminación falla, el cuadro sigue abierto y muestra el motivo.
- Sesión ya iniciada. Abrir la página de inicio de sesión estando ya conectado te lleva directamente al panel.
Correcciones
- Importar un repositorio de GitHub cuyo nombre contiene
.giten medio, comoname.github.io, ya no trae el repositorio equivocado. - Restaurar un snapshot (de aplicación o de base de datos) o hacer rollback a un release desde un archivo dañado ahora se rechaza antes de cambiar nada (
INVALID_ZIP_STRUCTURE,400). Los archivos de la aplicación y la base de datos en ejecución se mantienen como estaban; antes, una base de datos podía quedar detenida y los archivos de una aplicación podían borrarse. Un snapshot de aplicación sin archivos se rechaza de la misma forma. - Las acciones sobre aplicaciones, bases de datos, snapshots, dominios y archivos ahora siempre registran su actividad en el workspace al que pertenece el recurso.
- Vincular una aplicación al despliegue automático ahora comprueba el repositorio contra tu instalación de la GitHub App. Un
repo_idque no coincide con el repositorio se rechaza conVALIDATION_ERROR, un repositorio fuera de la instalación devuelveINSTALLATION_NOT_FOUND, y si GitHub no está disponible se devuelveFETCH_ZIP_ERROR(502).