我该如何在Dockerfile中设置PS1环境变量(bash提示符)?
我尝试使用 ENV PS1 "\h:\W \u$ "
但是这个命令没有改变提示符。
我不知道为什么上述的ENV
没有设置PS1提示符。
有什么方法可以做到吗?
我该如何在Dockerfile中设置PS1环境变量(bash提示符)?
我尝试使用 ENV PS1 "\h:\W \u$ "
但是这个命令没有改变提示符。
我不知道为什么上述的ENV
没有设置PS1提示符。
有什么方法可以做到吗?
~/.bashrc
重新定义,该文件位于您的镜像中,并在容器启动时自动加载(它可能在另一个文件中 - 我不确定所有Linux发行版上是否始终在~/.bashrc中定义PS1)。~/.bashrc
中定义,则您可以在Dockerfile中编写一个RUN
命令,看起来像这样:RUN echo PS1=\"\\h:\\W \\u$ \" >> ~/.bashrc
完成了!
RUN echo "PS1='\${debian_chroot:+(\$debian_chroot)}\\[\033[01;32m\\]\\u@\\H\[\\033[00m\\]:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]\\$ '" >> ~/.bashrc
- j0k简单的ENV PS1=...
无法工作,因为PS1稍后会在.bashrc
文件中重新定义。这里是一个简单的解决方案,而无需转义您的PS1字符串:
ENV PS1A="[\d \[\e[33m\]\t\[\e[m\]] \[\e[31m\]\u\[\e[m\]@\[\e[31m\]\h\[\e[m\] \[\e[36m\]\w\[\e[m\]\n $ "
RUN echo 'PS1=$PS1A' >> ~/.bashrc
.bashrc
等文件放入容器中?正常的shell启动设置是直接使用PS1
吗?这将覆盖环境中的任何设置。 - Etan Reisner