franklin ashok
-
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.
-
Usar la imagen cuando creo un contenedor en Docker Desktop funciona bien y puedo cargar la página WP
-
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.
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.
¿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