【发布时间】:2017-06-29 02:12:08
【问题描述】:
我要做的是在本地运行 Erlang Observer App,然后连接到远程 Docker 容器,该容器在生产中运行我的 Elixir/Phoenix 应用程序。
我遇到的问题是无法连接。
从我的研究看来,我需要在启动 Phoenix 服务器之前知道 Docker 镜像的 IP 地址,这样我才能像这样启动它:
iex --name my_app@10.20.57.123 -S mix phoenix.server
我不确定是否需要cookie,所以我也尝试过
iex --name my_app@10.20.57.123 --cookie random_cookie -S mix phoenix.server
我尝试使用主机名而不是 IP 地址,但这似乎不起作用。
一旦我运行了它,我希望像这样运行 Observer
erl -name observe@127.0.0.1 -setcookie random_cookie -run observer
或者,使用IEx
iex --name observe@127.0.0.1 --cookie random_cookie
iex> :observer.start()
我是否可以在不知道 IP 地址的情况下启动 Phoenix 服务器,并且仍然能够与 Observer 进行远程连接?
我可以在使用这个 shell 命令构建 docker 映像时弄清楚它的 IP 地址是什么
ip addr | grep -Eo 'inet (.*) scope global' | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
但不知道如何将其放入启动 Phoenix 服务器的命令中。
我知道使用静态 IP 地址启动 docker 映像有一个可能的解决方案,但我无法使用我的设置设置静态 IP 地址。
感谢任何帮助。
【问题讨论】:
-
您可以使用服务器的 FQDN 代替吗? Phoenix 是否从您问题中的命令开始?