Docker Container中的NCurses

时间:2015-02-27 15:54:19

标签: docker tor python-curses

我目前在Docker容器中设置了TOR中继,以便在线快速部署。一切运行良好,安装了ARM(TOR监控应用程序),随时可以使用。

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

curses.error:setupterm:找不到终端

我启动容器,一切都很好,然后我按如下方式执行shell:

docker exec -t -i container_id / bin / bash

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

Google搜索问题表明TERM环境变量可能不正确( echo $ TERM 返回 dumb )。 Docker中的 t 标志应该是设置TTY。

我认为其他人在使用Docker容器时遇到过这个问题,但我对如何解决问题感到茫然。谷歌搜索并没有提出任何特定于Docker的东西。

帮助!

2 个答案:

答案 0 :(得分:2)

我不确定如何持续解决这个问题。但是一旦在终端会话中输入

export TERM=xterm

应该这样做。

答案 1 :(得分:0)

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

您的新命令如下所示:

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

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