我目前在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的东西。
帮助!
答案 0 :(得分:2)
我不确定如何持续解决这个问题。但是一旦在终端会话中输入
export TERM=xterm
应该这样做。
答案 1 :(得分:0)
Docker文档说它将自动分配TERM
(可能是版本问题);但如果将-e TERM
添加到命令行,则TERM的值将与父shell中的值匹配。
您的新命令如下所示:
docker exec -ti -e TERM container_id /bin/bash
现在你会发现容器内的TERM
将匹配容器外的TERM
(这可能是你想要的,因为仿真器是相同的。)