如何在Docker容器中设置PS1

Rag*_*ndy 6 docker dockerhub

我想将$ PS1环境变量设置为容器。它可以帮助我识别多级或复杂的docker环境设置。当前docker容器提示

root @ container-id#

如果可以按以下方式进行更改,则可以通过查看$ PS1提示本身来识别容器。

[Level-1] root @ container-id#

我通过制作自己的映像(Dockerfile)、. profile文件等导出$ PS1进行了实验,但这并没有反映出来。

use*_*097 7

DockerfilePS1通过执行以下操作进行设置:

RUN echo 'export PS1="[\u@docker] \W # "' >> /root/.bash_profile
Run Code Online (Sandbox Code Playgroud)


sas*_*nsi 5

我有同样的问题,但在docker-compose上下文中。
这是我设法使它工作的方法:

# docker-compose.yml

version: '3'
services:
  my_service:
    image: my/image
    environment:
      - "PS1=$$(whoami):$$(pwd) $$ "
Run Code Online (Sandbox Code Playgroud)

只需在docker-compose.yml配置文件中将 PS1 值作为环境变量传递即可。
请注意如何对美元符号进行转义以防止docker-compose插入值(文档)。


sea*_*mcl 1

我通常创建 /home/USER/.bashrc 或 /root/.bashrc,具体取决于 Dockerfile 的用户是谁。效果很好。我试过了

ENV PS1 '# ' 
Run Code Online (Sandbox Code Playgroud)

但这对我来说从来没有用过。