我使用命令:docker run --rm -it govim bash -l运行docker图像,但它不显示颜色输出。如果我source ~/.bash_profile还是bash -l再次运行,则输出将正确地以彩色输出。
docker run --rm -it govim bash -l
source ~/.bash_profile
bash -l
重击提示图像
我的bash_profile和bash_prompt
该OP SolomonT报道称,dockerrun有env做的工作:
dockerrun
env
docker run --rm -it -e "TERM=xterm-256color" govim bash -l
和费尔南多·科雷亚增加的评论:
为了同时获得色彩支持和tmux工作,我结合了两个示例:
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)。
.bash_profile
bash_prompt
但是docker问题9299说明了TERM似乎没有立即设置,迫使用户使用以下命令打开另一个bash:
TERM
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
两者都假设您首先有一个正在运行的容器,在这里可能不方便。