我们试图使用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实例时:
mix edeliver build release --verbose
mix edeliver deploy release to production
mix edeliver start production我们得到了一个积极的确认信息:
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端口上启动凤凰应用程序。
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.1或run_erl.log都没有使我们更聪明。:-(
任何帮助理解这将是非常感谢!(请&谢谢!)
Note:遗憾的是,虽然Q:在成功部署之后,无法访问端口4000。听起来很相似,但这个解决方案对我们不起作用(我们试过了)
发布于 2017-06-30 22:02:37
在我看来,您似乎没有阅读用于部署via版本的菲尼克斯文档。酿酒厂也有这方面的文档。
在gist中,这是您在配置中需要的:
config :healthlocker, Healthlocker.Endpoint
server: true,
root: ".",
version: Mix.Project.config[:version]确保在prod config.exs文件中设置了这三个配置选项,并且您应该做得很好。
https://stackoverflow.com/questions/44854978
复制相似问题