/ / Personalizar bash contenedor contenedor bash - bash, unix, docker

Personalizar contenedor contenedor bash - bash, Unix, docker

Intento establecer una configuración personalizada para el indicador de bash de contenedor de Docker para mostrar el nombre de la rama git cuando está conectado.

Encontré todo para hacerlo correctamente, pero no ejecuto el ~/.profile o incluso ~/.bash_profile Archivos en el edificio del contenedor.

Si realizo source ~/.profile manualmente dentro del contenedor, funciona bien. Pero no quiero que mis usuarios escriban ningún comando para habilitar el indicador personalizado.

Traté de poner RUN /bin/bash -c "source /root/.profile" o RUN source /root/.profile en mi Dockerfile, source /root/.profile en mi entrypoint.sh archivo sin ningún éxito.

Vi algunas soluciones al correr docker run, pero estoy usando docker-compose.

Gracias a todos si tienen algún consejo: D!

Respuestas

1 para la respuesta № 1

No estoy seguro de que usar el archivo de configuración ~ / .profile sea la mejor manera de hacer lo que quiere. También, usar RUN source /root/.profile no tendrá ningún efecto, ya que la línea se ejecutará una sola vez y no será persistente al intentar ejecutar el binario bash dentro del contenedor. (En realidad se ejecutará una nueva sesión de bash).

Entonces, primero que todo, el tipo de configuración que está tratando de hacer debería estar en el archivo .bashrc (solo porque es el lugar donde generalmente aparece).

Entonces, como dice la página de manual de bash:

Cuando se invoca bash como un inicio de sesión interactivocáscara, o como shell no interactivo con la opción --login, primero lee y ejecuta comandos desde el archivo / etc / profile, si ese archivo existe. Después de leer ese archivo, busca ~ / .bash_profile, ~ / .bash_login, y ~ / .profile, en ese orden

Y

Cuando se inicia un shell interactivo que no es un shell de inicio de sesión, bash lee y ejecuta comandos desde /etc/bash.bashrc y ~ / .bashrc, si estos archivos existen

Lo que probablemente deberías hacer:

En el Dockerfile:

COPY config/.bashrc /root/.bashrc

El archivo .bashrc que desea copiar en su contenedor se encuentra en un repositorio de configuración. Aquí es donde debes ponerte la configuración.

Luego, en el punto de entrada:

exec "$@"

Luego, puedes ejecutar bash usando el comando docker:

docker run XXX /bin/bash