如何在Docker容器中设置PS1
我想为容器设置$ PS1环境variables。 它帮助我确定多层次或复杂的docker环境设置。 目前docker集装箱提示与
根@容器ID#
如果我可以改变它,我可以通过查看$ PS1提示本身来识别容器。
[等级-1]根@容器-ID#
我通过制作自己的图像(Dockerfile),.profile文件等来导出$ PS1来做实验,但这并不是反映。
我们使用类似的技术来跟踪复杂容器构build中的input和输出。
https://github.com/ianmiell/shutit/blob/master/shutit_global.py#L1338
这一行代表了处理docker/(p)期望组合的来之不易的经验:
"SHUTIT_BACKUP_PS1_%s=$PS1 && PS1='%s' && unset PROMPT_COMMAND"
备份提示是方便的,如果你想恢复,设置PS1与PS1 =设置PS1,并取消设置PROMPT_COMMAND消除任何令人讨厌的意外terminal被重置等。
如果问题是如何确保在运行容器(而不是构build)时设置它,那么根据运行容器的方式,您可能需要向.bashrc / .profile文件添加一些内容。 据我所知,没有办法确保它与dockerfile指令,并使其坚持。
这个Dockerfile通过这样做来设置PS1
:
RUN echo 'export PS1="[\u@docker] \W # "' >> /root/.bash_profile
我通常创build/home/USER/.bashrc或/root/.bashrc,这取决于Dockerfile的用户是谁。 那效果很好。 我试过了
ENV PS1 '# '
但那从来没有为我工作。
你应该在.profile
设置,而不是.bashrc
。
只需打开.profile
从你的根目录或家里,用PS1='\e[33;1m\u@\h: \e[31m\W\e[0m\$ '
或任何你想要的。
请注意,您需要重新启动您的容器。