您还可以将本地目录挂载到docker映像中,并在中获取脚本.bashrc
。除非您希望脚本在每个新的Shell上执行,否则不要忘记脚本必须由函数组成。(这已过时,请参阅更新通知。)
我正在使用此解决方案,以便能够在docker实例之外更新脚本。这样,如果发生更改,我不必重新运行映像,只需打开一个新的shell。(摆脱了重新打开外壳程序的问题-请参阅更新通知)
这是绑定当前目录的方式:
docker run -it -v $PWD:/scripts $my_docker_build /bin/bash
现在,您的当前目录已绑定到/scripts
您的Docker实例。
(已过时)要保存.bashrc
更改,请使用以下命令提交工作映像:
docker commit $container_id $my_docker_build
更新资料
为了解决此问题以为每个更改打开新的外壳,我现在执行以下操作:
在dockerfile本身中添加RUN echo "/scripts/bashrc" > /root/.bashrc"
。在内部,zshrc
我将脚本目录导出到路径。脚本目录现在包含多个文件,而不是一个。现在,我可以直接调用所有脚本,而不必每次更改都打开一个子外壳。
顺便说一句,您也可以在容器外部定义历史文件。这样,就不必再进行bash更改了。
WORKDIR
和CMD
?