gpt4 book ai didi

azure - Edeliver 在随机 TCP 端口上启动 Phoenix/Elixir 应用程序

转载 作者:行者123 更新时间:2023-12-04 04:24:12 25 4
gpt4 key购买 nike

我们正在尝试将 Phoenix Web 应用程序部署到 Linux 虚拟机(在我们的例子中是在 Azure)使用edeliver我们部署了"basic" Blog App使用 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!

但是,当我们按照 checking-running-services-on-linux 的建议运行 netstat -plnt 时我们注意到 edeliver随机 TCP 端口上启动 Phoenix 应用程序:

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 上运行,即使我们的 prod.exs config file has hard coded the PORT to 4000 我们有一个环境变量,可以在 .profile file 中将其设置为 4000按照说明进行操作(以防万一)。

所以我的问题是:

为什么 edeliver随机 TCP 端口上启动 Phoenix 应用程序...?

如何edeliver在端口4000上启动应用程序?

我们的.deliver/config在 GitHub 上。

我们尝试按照@dogbert的内容读取/home/{username}/{appname}/var/log中的日志说明: How to View Production Logs in Phoenix Web Application Deployed using Edeliver?但是erlang.log.1run_erl.log都没有让我们更明智...:-(

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

注意:遗憾的是,虽然这个问题:Edeliver - Impossible to access on port 4000 after successful deploy 听起来相似,该解决方案对我们不起作用(我们尝试过)

最佳答案

在我看来,您没有阅读有关通过版本进行部署的 Phoenix 文档。 Distillery也有这方面的文档。

总而言之,这就是您的配置中需要的内容:

config :healthlocker, Healthlocker.Endpoint
server: true,
root: ".",
version: Mix.Project.config[:version]

确保在您的 prod config.exs 文件中设置了这三个配置选项,然后就可以开始了。

关于azure - Edeliver 在随机 TCP 端口上启动 Phoenix/Elixir 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44854978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com