一尘不染

Docker bash提示不显示颜色输出

linux

我使用命令:docker run --rm -it govim bash -l运行docker图像,但它不显示颜色输出。如果我source ~/.bash_profile还是bash -l再次运行,则输出将正确地以彩色输出。

重击提示图像

我的bash_profile和bash_prompt


阅读 1003

收藏
2020-06-07

共1个答案

一尘不染

该OP SolomonT报道称,dockerrunenv做的工作:

docker run --rm -it -e "TERM=xterm-256color" govim bash -l

和费尔南多·科雷亚增加的评论:

为了同时获得色彩支持和tmux工作,我结合了两个示例:

docker exec -it my-container env TERM=xterm-256color script -q -c "/bin/bash" /dev/null

正如chepner所评论(较早的回答)那样.bash_profile,由于bash_prompt由调用的.bash_profile,因此是来源(属于交互式shell)。

但是docker问题9299说明了TERM似乎没有立即设置,迫使用户使用以下命令打开另一个bash:

docker exec -ti test env TERM=xterm-256color bash -l

您在问题8755中有类似的颜色问题。

为了说明/重现该问题

docker exec -ti $CONTAINER_NAME tty
not a tty

当前的解决方法是:

docker exec -ti `your_container_id` script -q -c "/bin/bash" /dev/null

两者都假设您首先有一个正在运行的容器,在这里可能不方便。

2020-06-07