DespliegueSolución de problemasLos cambios en Dockerfile no se aplican

Mis cambios en el Dockerfile no parecen aplicarse

Tienes un Dockerfile en tu repositorio, lo editaste, pero la compilación que ejecuta Lizard no coincide con lo que escribiste.

Qué significa esto

La plataforma decidió que el Dockerfile de tu repositorio estaba incompleto y regeneró uno por ti con lizardpack en lugar de usar el tuyo literalmente.

Por qué puede pasar esto

Esta comprobación se ejecuta solo para servicios con origen GitHub. Las cargas (lizard up) siempre usan un Dockerfile en la raíz tal como está escrito.

Con origen GitHub, Lizard trata un Dockerfile en la raíz como incompleto cuando se cumplen ambas condiciones:

  • tiene un COPY de build, dist, out, .next o public escrito sin barra final, como COPY dist /usr/share/nginx/html;
  • no tiene ninguna línea RUN que empiece con npm, yarn, pnpm, bun, pip, pip3, bundle, cargo, go build, mvn o gradle.

Lizard asume que esos artefactos se compilaron fuera de la imagen, y lizardpack genera un Dockerfile de reemplazo que incluye el paso de compilación faltante.

Otras dos configuraciones también omiten el Dockerfile de la raíz de tu repositorio. Si dockerfilePath está configurado, Lizard usa ese archivo tal como está escrito. Si no lo está, un buildCommand o startCommand configurado hace que Lizard sintetice un Dockerfile a partir de esos comandos.

Posibles soluciones

Agrega un paso de compilación real

Si quieres que tu Dockerfile se use tal cual, dale un paso de compilación real en lugar de copiar salida precompilada:

RUN npm ci && npm run build

O fuerza el uso literal

Configura dockerfilePath. Tiene prioridad sobre los comandos de compilación e inicio para la compilación de la imagen, pero un startCommand configurado sigue reemplazando el CMD de tu Dockerfile en tiempo de ejecución, así que borra ambos en la misma actualización. Un valor vacío borra un campo:

lizard service set api --set buildCommand= --set startCommand= --set dockerfilePath=Dockerfile

Ver también

Cambiar estos campos de compilación puede iniciar una compilación. Revisa lizard events antes de enviar otro redeploy, para evitar iniciar una segunda compilación.

Actualizado