我使用命令docker run --rm -it govim bash -l运行Docker图像,但它不显示 colored颜色 输出.

如果我再次运行source ~/.bash_profilebash -l,输出将正确地以 colored颜色 输出.

Bash Prompt Image

My bash_profile and bash_prompt个文件.

推荐答案

OP SolomonT份报告显示docker run份和env份确实有效:

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

Fernando Correiain the comments:

为了获得这两种 colored颜色 的支持,并使tmux工作,我结合了这两个例子:

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

正如chepner所 comments 的(前面的答案),.bash_profile是源代码(它是一个交互式shell),因为bash_promptcalled by .bash_profile.

docker issue 9299说明TERM似乎没有立即设置,这迫使用户打开另一个bash:

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

你和issue 8755有相似的 colored颜色 问题.

illustrate/reproduce the problem:

docker exec -ti $CONTAINER_NAME tty
not a tty

current workaround人是:

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

两者都假设你先有一个运行的容器,这在这里可能不方便.

Linux相关问答推荐

Bash脚本用于在远程工作后关闭用户会话

如何在 shell 脚本中自定义 SFTP 详细输出

加载ELF64头文件为什么会导致分段错误?

为什么 linux shell diff 命令有时会显示与空行相关的输出,即使存在 -B(--ignore-blank-lines)选项?

如何从核心转储中获取线程名称?

c++进程状态中的+是什么意思

bind(): "无法分配请求的地址"

如何从 2 个文件中获取内容并使用 shell 脚本将该内容附加到新文件中

如何找出哪个进程正在消耗等待 CPU(即 I/O 阻塞)

应用程序如何在运行时解析为不同版本的共享库?

如何使用 AWK 合并两个文件?

用于 GCC/G++ 的宏来区分 Linux 和 Mac OSX?

为什么 Linux 不通过 TSS 使用硬件上下文切换?

让 sudo 和 nohup 一起工作

在 linux 上查看文件大小

vscode 总是请求保存权限

/var 中有什么?

如何在 Linux 中删除早于特定日期的文件?

如何从目录复制内容而不是符号链接?

查找和基本名称不能很好地播放