首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在随机TCP端口上交付启动凤凰/药剂应用程序

在随机TCP端口上交付启动凤凰/药剂应用程序
EN

Stack Overflow用户
提问于 2017-06-30 21:21:35
回答 1查看 294关注 0票数 9

我们试图使用edeliver将菲尼克斯网络应用程序部署到Linux (在我们的例子中是Azure),我们已经使用edeliver“基本”博客应用部署到Azure,并记录了以下步骤:https://github.com/dwyl/learn-microsoft-azure#part-2-deploying-your-application

当我们在实例上使用https://github.com/nelsonic/healthlocker手动运行(“真正”)应用程序:MIX_ENV=prod mix phoenix.server时,它运行得很好!

当我们使用以下命令将应用程序部署并运行到Azure实例时:

代码语言:javascript
复制
mix edeliver build release --verbose
mix edeliver deploy release to production
mix edeliver start production

我们得到了一个积极的确认信息:

代码语言:javascript
复制
EDELIVER HEALTHLOCKER WITH START COMMAND

-----> starting production servers

production node:

  user    : root
  host    : 51.140.86.5
  path    : /home/hladmin
  response: ok


START DONE!

但是,当我们按照netstat -plnt的建议运行检查-运行在linux上的服务时,我们注意到edeliver正在随机 TCP端口上启动凤凰应用程序。

代码语言:javascript
复制
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:29130         0.0.0.0:*               LISTEN      3759/mdsd
tcp        0      0 0.0.0.0:38863           0.0.0.0:*               LISTEN      56269/beam.smp
tcp        0      0 0.0.0.0:4369            0.0.0.0:*               LISTEN      32642/epmd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1557/sshd
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      16901/postgres
tcp6       0      0 :::4369                 :::*                    LISTEN      32642/epmd
tcp6       0      0 :::22                   :::*                    LISTEN      1557/sshd

在这种情况下,应用程序运行在端口38863上,即使考虑到我们的4000 ,我们也有一个环境变量,可以根据指令在文件中将其设置为4000 (以防万一)。

所以我的问题是:

为什么edeliver在随机TCP端口上启动菲尼克斯应用程序.?

如何让edeliver在端口4000上引导应用程序

我们的.deliver/config在GitHub上。

我们试图按照@dogbert的说明阅读/home/{username}/{appname}/var/log中的日志:如何在使用View部署的凤凰Web应用程序中查看生产日志?,但erlang.log.1run_erl.log都没有使我们更聪明。:-(

任何帮助理解这将是非常感谢!(请&谢谢!)

Note:遗憾的是,虽然Q:在成功部署之后,无法访问端口4000。听起来很相似,但这个解决方案对我们不起作用(我们试过了)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-30 22:02:37

在我看来,您似乎没有阅读用于部署via版本的菲尼克斯文档。酿酒厂也有这方面的文档。

在gist中,这是您在配置中需要的:

代码语言:javascript
复制
config :healthlocker, Healthlocker.Endpoint
  server: true,
  root: ".",
  version: Mix.Project.config[:version]

确保在prod config.exs文件中设置了这三个配置选项,并且您应该做得很好。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44854978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档