Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

609
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!