如何用Dockerfile设置$ PS1?

时间:2016-05-16 12:39:03

标签: bash docker environment-variables dockerfile

如何在Dockerfile中设置PS1环境变量(bash提示符)?
我试过ENV PS1 "\h:\W \u$ "
但是这个命令不会改变提示 我不知道为什么上面ENV没有设置PS1提示。
我该怎么做?

2 个答案:

答案 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