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

610
Vistas
contenedor docker ubuntu: shell vinculado a bash todavía inicia shell

Muy bien chicos, intento instalar rvm en un contenedor docker basado en ubuntu:14.04. Durante el proceso, descubrí que algunas personas hacen algo como esto para asegurarse de que los comandos de Docker también se ejecuten con bash:

 RUN ln -fs /bin/bash /bin/sh

Ahora pasa la rareza y espero que alguien de ustedes me lo pueda explicar:

 → docker run -it --rm d81ff50de1ce /bin/bash root@e93a877ab3dc:/# ls -lah /bin .... lrwxrwxrwx 1 root root 9 Mar 1 16:15 sh -> /bin/bash lrwxrwxrwx 1 root root 9 Mar 1 16:15 sh.distrib -> /bin/bash ... root@e93a877ab3dc:/# /bin/sh sh-4.3# echo $0 /bin/sh

¿Alguien puede explicar qué está pasando aquí? Sé que podría prefijar mis comandos en el dockerfile con bash -c , pero me gustaría entender qué está sucediendo aquí y, si es posible, eliminar el prefijo bash -c en el dockerfile.

muchas gracias robin

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Es porque bash tiene un modo de compatibilidad en el que intenta emular sh si se inicia con el nombre sh , como dice la página de manual:

Si bash se invoca con el nombre sh, intenta imitar el comportamiento de inicio de las versiones históricas de sh lo más fielmente posible, mientras también se ajusta al estándar POSIX. Cuando se invoca como un shell de inicio de sesión interactivo, o un shell no interactivo con la opción --login, primero intenta leer y ejecutar comandos desde /etc/profile y ~/.profile, en ese orden. La opción --noprofile se puede usar para inhibir este comportamiento. Cuando se invoca como shell interactivo con el nombre sh, bash busca la variable ENV, expande su valor si está definido y usa el valor expandido como el nombre de un archivo para leer y ejecutar. Dado que un shell invocado como sh no intenta leer ni ejecutar comandos desde ningún otro archivo de inicio, la opción --rcfile no tiene efecto. Un shell no interactivo invocado con el nombre sh no intenta leer ningún otro archivo de inicio. Cuando se invoca como sh, bash entra en modo posix después de leer los archivos de inicio.

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