Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

688
Vistas
Docker: no se puede ejecutar el archivo binario

No puedo ejecutar ningún binario en mi contenedor docker.

archivo acoplable:

 FROM ubuntu:eoan AS compiler-build RUN apt-get update && \ dpkg --add-architecture i386 && \ apt-get install -y gcc \ gcc-multilib \ make \ cmake \ git \ python3.8 \ bash WORKDIR /home ADD . /home/pawn RUN mkdir build WORKDIR /home/build ENTRYPOINT ["/bin/bash"] CMD ["/bin/bash"]

Ni siquiera puedo usar file incorporado:

 [root@LAPTOP-EJ5BH6DJ compiler]:~/dev/private/SAMP/compiler (v13.11.0) (master) dc run compiler file bash /usr/bin/file: /usr/bin/file: cannot execute binary file
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Parece que Entrypoint no puede apuntar a /bin/bash . Eliminar ENTRYPOINT ["/bin/bash"] es suficiente para que funcione.

over 4 years ago · Santiago Trujillo Denunciar

0

De este hilo del foro :

Este error ocurre cuando usa un shell en su punto de entrada sin el argumento "-c"

Entonces, si cambia su Dockerfile para terminar con

 ENTRYPOINT [ "/bin/bash", "-l", "-c" ]

entonces puedes ejecutar archivos binarios.

Tenga en cuenta el propósito de las opciones para /bin/bash , desde la página de manual:

  • -l : Hace que bash actúe como si hubiera sido invocado como un shell de inicio de sesión

  • -c : si la opción -c está presente, los comandos se leen desde el primer argumento que no es una opción command_string . Si hay argumentos después de command_string , el primer argumento se asigna a $0 y los argumentos restantes se asignan a los parámetros posicionales. La asignación a $0 establece el nombre del shell, que se utiliza en los mensajes de advertencia y error.

Además, vale la pena leer este artículo sobre cómo usar ENTRYPOINT y CMD juntos, y cuáles son sus diferencias.

EDITAR: Aquí hay otro artículo que entra en un ejemplo trivial (pero más claro que el primer artículo) usando el shell de echo incorporado.

EDITAR: Aquí hay una adaptación del ejemplo trivial del segundo artículo que vinculé:

 FROM ubuntu ENTRYPOINT [ "/bin/bash", "-l", "-c" ] CMD [ "ls" ]
 $ docker build -t test . $ docker run --rm test bin boot ... var $ docker run --rm test "ls etc" adduser.conf alternatives apt ... update-motd.d xattr.conf

Tenga en cuenta el " alrededor de ls /etc ". Sin las comillas, el argumento /etc no parece pasarse al comando ls como cabría esperar.

over 4 years ago · Santiago Trujillo Denunciar

0

Golpeé el mismo error. A diferencia de las otras respuestas, mi error estaba relacionado con los parámetros de docker run :

 # failed docker run -it $(pwd | xargs basename):latest bash # worked docker run -it $(pwd | xargs basename):latest

No necesitaba agregar bash porque ya tenía esto en mi Dockerfile:

 ENTRYPOINT ["/bin/bash"]
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda