在Docker容器中的NCurses

我目前在Docker容器中设置了TOR中继,以便在线快速部署。 一切正常,ARM(一个TOR监控应用程序)已经安装好,可以使用了。

当我在容器中执行一个bash shell来运行ARM(一个使用NCurses的Python应用程序)时,ARM会引发以下错误:

curses.error:setupterm:找不到terminal

我启动容器,一切都开始正常,然后我执行一个shell如下:

docker exec -t -i container_id / bin / bash

一旦我有bash shell,我运行ARM应用程序导致上面的错误。

用谷歌search这个问题表明TERM环境variables可能是不正确的( echo $ TERM带着哑巴回来)。 Docker中的t标志应该是设置一个TTY。

我认为其他人已经遇到了这个问题与docker集装箱,但我在如何解决这个问题的损失。 谷歌search没有拿出任何特定的docker。

帮帮我!

我不知道如何解决这个问题。 但是一旦在terminal会话中input

export TERM=xterm 

应该这样做。

Docker文档说它会自动分配TERM (可能是版本问题); 但是如果在命令行中添加-e TERM ,则TERM的值将与父shell中的值相匹配。

你的新命令看起来像这样:

 docker exec -ti -e TERM container_id /bin/bash 

现在你会发现容器内的TERM将与容器外的TERM匹配(这可能是你想要的,因为模拟器是相同的)。