Dockerfile
Haz commit de un Dockerfile. Nodion construye esa imagen y la ejecuta.
Guías de despliegue paso a paso: Docker.
En Applications → New, conecta un repo de Gity elige Dockerfile. Si el escaneo encuentra un Dockerfile, da preferencia a esta estrategia. Usa Buildpackssi quieres que Nodion instale el runtime.
Una imagen ya construida se salta la build desde Git: sube esa imagen a un registryy despliégala. La importación de Docker Composeal crear la app es experimental y no es esta estrategia.
Qué configuras
- Base directory: el contexto de build y la carpeta del Dockerfile dentro de un monorepo.
- Dockerfile name: normalmente
Dockerfile. El escaneo también listaDockerfile.*. - Ports: se rellenan a partir de los
EXPOSETCP de ese archivo. Añade o quita los que necesites. Una vez creada la app, los puertos están en el proceso web.
Puedes cambiar la estrategia, la ruta y el valor de Base directory más adelante en Settings. El cambio se aplica en el siguiente despliegue.
Qué hace una build
- Clona la rama.
- Usa el Base directory como contexto de build. Se respeta el
.dockerignoreque haya ahí..gitnunca se envía. - Construye el Dockerfile indicado. Los Dockerfile de varias etapas funcionan. No hay selector de stage, así que se ejecuta el stage final por defecto.
- Sube la imagen y arranca a partir de ella el proceso
web.
Las variables de entorno marcadas como Build en la pestaña Environment se pasan como build args de Docker (ARG). Las variables de runtime se aplican cuando arranca el proceso, en el siguiente despliegue. Los secrets quedan en modo solo escritura una vez guardados.
Los secrets de BuildKit (RUN --mount=type=secret) no están soportados. Pon los valores que necesites durante la build en esas variables Build.
Escucha y health check
Nodion no define PORT en una app con Dockerfile. Esa variable es para los buildpacks. Haz que tu servidor escuche en el puerto del proceso web (el de EXPOSE o el que configures en Processes). Si esa lista está vacía, Nodion usa el EXPOSE de la imagen y, si no hay, 8080.
Escucha en todas las interfaces, no solo en localhost. El arranque por defecto es el CMD / ENTRYPOINT de la imagen. Si lo necesitas, sobrescribe el comando en el proceso.
La comprobación de readiness es un HTTP GET al Health check path de Settings (por defecto /) en el puerto web. Una respuesta 2xx o 3xx se considera válida. Un HEALTHCHECK de Docker en la imagen se ignora.
Se respeta el USER de la imagen. Un nombre de usuario desconocido hace que falle el despliegue.