14.04 docker 内部“TERM 环境变量未设置”

14.04 docker 内部“TERM 环境变量未设置”

我在 Docker 容器内运行 ubuntu 14.04。我的镜像是从官方 ubuntu:14.04 镜像构建的) Docker 文件与此几乎相同https://github.com/pfy/erpnext/blob/master/Dockerfile(刚刚从 debian:wheezy >>> 从 ubuntu:14.04 更改)。

ERPNext正在使用此脚本进行安装https://raw.githubusercontent.com/frappe/bench/master/install_scripts/setup_frappe.sh)。

构建和运行说明可在此处找到https://raw.githubusercontent.com/pfy/erpnext/master/README.md

不知何故它可以工作但是终端/控制台似乎没有完全发挥作用。

"TERM environment variable not set"当我尝试clear屏幕时,我得到了一个。我发现其他一些帖子有相同或相似的错误消息,但上下文总是不同,所以我无法从提供的解决方案中获得任何东西。

我猜想 docker ubuntu 镜像可能会使用得相当频繁,所以也许有人遇到并解决了这个问题。

答案1

无需在启动容器后编辑配置,只需在运行基于 Debian 的容器时定义缺少的环境变量即可

-e TERM=xterm 

正如本例所示

export DUMMY_SERVER_NAME=itswednesday

docker run \
  -d \
  --name $DUMMY_SERVER_NAME \
  -e TERM=xterm \
  --expose=80 \
  debian /bin/bash -c "while [[ true ]]; do sleep 1; done"

答案2

感谢来自Gunnar Hjalmarsson这似乎可以解决问题

docker start [container]
docker exec -it [container] bash
vim /etc/bash.bashrc

添加export TERM=xterm到文件顶部,停止/重新启动我的容器...

瞧!...终端似乎表现“正常”(我使用clear以前不起作用但现在起作用的命令进行了测试)

再次感谢并且抱歉在我的最初帖子中引入了误导性术语(终端/控制台)。

答案3

Docker 1.13 中将修复此问题此请求请求最近合并的。在运行该版本之前,您可以运行exec如下命令来避免此问题:

docker exec --tty [container] env TERM=xterm [command-to-run]

相关内容