如何在Dockerfile中设置PS1环境变量(bash提示符)?
我试过ENV PS1 "\h:\W \u$ "
但是这个命令不会改变提示
我不知道为什么上面ENV
没有设置PS1提示。
我该怎么做?
答案 0 :(得分:5)
这里发生的事情是PS1正在被图像中的文件~/.bashrc
重新定义,并在启动容器时自动获取(它可能在另一个文件中,我不确定PS1是否总是在所有Linux发行版的〜/ .bashrc中定义。
假设它是在~/.bahsrc
中定义的,那么你可以在你的Dockerfile中写一个RUN
命令,它看起来像:
RUN echo PS1=\"\\h:\\W \\u$ \" >> ~/.bashrc
Et瞧!
答案 1 :(得分:0)
简单的ENV PS1=...
不起作用,因为稍后会在.bashrc
文件中重新定义PS1。这是一个简单的解决方案,无需转义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