Al crear un pod, vaya a CrashLoopBackoff. Los registros muestran “exec /usr/local/bin/docker-entrypoint.sh: error de formato exec”.

2 minutos de lectura

Avatar de usuario de Franklin Ashok
franklin ashok

  1. Usando WordPress php-apache-7.4 como imagen base, creé un archivo Docker con poca personalización y creé una imagen. Estoy usando los mismos archivos docker-entrypoint.sh, wp-config-docker.php de la imagen oficial de Docker Hub.

  2. Usar la imagen cuando creo un contenedor en Docker Desktop funciona bien y puedo cargar la página WP

  3. Subí la misma imagen a Docker Hub y desde allí, usando esa imagen, creé un pod en el clúster de EKS y recibí el error “exec /usr/local/bin/docker-entrypoint.sh: exec format error”.

Estoy usando los archivos del siguiente repositorio
https://github.com/docker-library/wordpress/tree/3b5c63b5673f298c14142c0c0e3e51edbdb17fd3/latest/php7.4/apache

Solo el archivo Docker en el repositorio anterior se modifica para instalar el memcached y copiar wp-config.php. Los otros dos archivos que estoy usando sin ningún cambio.

Intenté cambiar el script docker-entrypoint.sh para agregar #!/bin/bash como se mencionó en algún problema informado, también traté de crear un custom-entrypoint.sh para editar el script docker-entrypoint.sh original que también se sugirió en otra página, pero no funcionó.

punto de entrada personalizado.sh

#!/bin/bash
sed -i -e 's/^exec "$@"/#exec "$@"/g' /usr/local/bin/docker-entrypoint.sh
source docker-entrypoint.sh
exec "$@"

Intentando solucionar esto, lo único que es confuso es en Docker Desktop cuando creo usando la misma imagen, ejecuta el cont sin ningún error.

  • ¿Intentó eliminar `\` después de exec “$@”?

    –Shashank Sinha

    28 abr a las 11:48


  • #!/bin/bash sed -i -e 's/^exec "$@"/#exec "$@"/g' /usr/local/bin/docker-entrypoint.sh source docker-entrypoint.sh exec "$@"

    –Shashank Sinha

    28 abr a las 11:51

  • Perdón por confundir, eso no era parte del guión, agregué cuando estaba publicando la pregunta. Edité la pregunta para eliminar eso.

    –Franklin Ashok

    28 abr a las 11:52


  • Mencionas Docker Desktop; ¿Está potencialmente construyendo la imagen en una Mac M1 basada en ARM, pero luego está tratando de ejecutarla en una instancia de nube basada en x86?

    – David laberinto

    28 abr a las 13:56

  • Hola David, muchas gracias por señalar este problema, sí, se debe al chip mac M1 pro. Ahora está arreglado. Agregué la siguiente plataforma al archivo docker y luego construí la imagen. DESDE –platform=linux/amd64

    –Franklin Ashok

    28 abr a las 14:28


Avatar de usuario de Franklin Ashok
franklin ashok

Como se menciona en el comentario anterior de David Maze, el problema se debe a la creación de la imagen en Mac M1 Pro.

Para arreglar esto necesito agregar FROM --platform=linux/amd64 <image>-<version> en Dockerfile y compilación o puede ejecutar el siguiente comando mientras ejecuta la compilación

docker build --platform=linux/amd64 <image>-<version>

Ambas soluciones funcionarán. yo añadí FROM --platform=linux/amd64 al Dockerfile y ya está arreglado.

¿Ha sido útil esta solución?