连接到docker容器中正在运行的Erlang应用程序版本

连接到docker容器中正在运行的Erlang应用程序版本,docker,erlang,relx,Docker,Erlang,Relx,这很尴尬,但我完全被卡住了,浪费了今天上午的大部分时间。我有一个由relx创建的Erlang应用程序版本,部署并运行在Docker容器中。我需要访问正在运行的节点上的shell,但是我没有这样做。发生的情况如下: $ docker exec -it 770b497d7f27 /bin/bash [root@ff /]# /app/bin/ff Usage: ff {start|start_boot <file>|foreground|stop|restart|reboot|pid|

这很尴尬,但我完全被卡住了,浪费了今天上午的大部分时间。我有一个由relx创建的Erlang应用程序版本,部署并运行在Docker容器中。我需要访问正在运行的节点上的shell,但是我没有这样做。发生的情况如下:

$ docker exec -it 770b497d7f27 /bin/bash
[root@ff /]# /app/bin/ff 
Usage: ff {start|start_boot <file>|foreground|stop|restart|reboot|pid|ping|console|console_clean|console_boot <file>|attach|remote_console|upgrade|escript|rpc|rpcterms}
[root@ff /]# /app/bin/ff ping
pong
[root@ff /]# /app/bin/ff attach
Can't access pipe directory /tmp/erl_pipes/ff@127.0.0.1/: No such file or directory
[root@ff /]# /app/bin/ff remote_console
Eshell V7.1  (abort with ^G)
(remshfbfbd4dd-ff@127.0.0.1)1> ^G
Eshell V7.1  (abort with ^G)
(remshfbfbd4dd-ff@127.0.0.1)1> 

我已经没有主意了。如果有任何帮助,我们将不胜感激。

找到了一个解决方法,通过覆盖默认的“哑”终端docker集,设法使^G工作:

export TERM=xterm

在这个^G工作之后,开始一个远程shell工作,我是一个快乐的露营者!很高兴知道为什么
attach
remote\u console
命令都不起作用。

remote\u shell
为您提供了一个远程shell,但您也需要^G才能工作?我正在尝试运行应用程序中模块中定义的函数,但是节点似乎是空的-这是应用程序运行的同一个节点吗?如果是这样,我如何访问应用程序模块?我当然希望
remote\u console
将您连接到正在运行的节点shell(对不起,我上面说的“remote\u shell”不是我,但您知道我期望的是什么意思)。如果
remshfbd4dd-ff@127.0.0.1
不是您的节点,但我猜它没有按我预期的那样工作或不工作。您可以通过运行
erl-name“some”手动尝试_name@127.0.0.1“-饼干你的饼干-remsh”AppNodeName@127.0.0.1“
,这将或多或少是
/app/bin/ff remote\u console
正在做的事情。不,它没有给我应用程序节点的外壳,只有启动它的外壳。。。
export TERM=xterm