También puede montar un directorio local en su imagen de docker y obtener el script en su .bashrc
. No olvide que el script debe constar de funciones a menos que desee que se ejecute en cada shell nuevo. (Esto está desactualizado, consulte el aviso de actualización).
Estoy usando esta solución para poder actualizar el script fuera de la instancia de Docker. De esta manera no tengo que volver a ejecutar la imagen si ocurren cambios, simplemente abro un nuevo shell. (Eliminó la reapertura de un shell, consulte el aviso de actualización)
Así es como enlaza su directorio actual:
docker run -it -v $PWD:/scripts $my_docker_build /bin/bash
Ahora su directorio actual está vinculado a /scripts
su instancia de Docker.
(Desactualizado) Para guardar sus .bashrc
cambios, confirme su imagen de trabajo con este comando:
docker commit $container_id $my_docker_build
Actualizar
Para resolver el problema de abrir un nuevo shell para cada cambio, ahora hago lo siguiente:
En el propio dockerfile agrego RUN echo "/scripts/bashrc" > /root/.bashrc"
. Dentrozshrc
exporto el directorio de scripts a la ruta. El directorio de scripts ahora contiene varios archivos en lugar de uno. Ahora puedo llamar directamente a todos los scripts sin tener que abrir un sub shell en cada cambio.
Por cierto, también puede definir el archivo de historial fuera de su contenedor. De esta manera, ya no es necesario comprometerse con un cambio de bash.
WORKDIR
yCMD
?