nel*_*nic 9 deployment elixir azure phoenix-framework edeliver
我们正在尝试将我们的Phoenix Web App部署到Linux VM(在我们的Azure案例中)使用edeliver
我们已经使用Azure部署了一个"基本"博客应用程序,edeliver并记录了以下步骤:https:
//github.com/dwyl/learn-微软蔚蓝#部分2 -部署-您的应用程序
而当我们手动运行(" 实 ")的应用程序: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
Run Code Online (Sandbox Code Playgroud)
我们收到一条肯定的确认消息:
EDELIVER HEALTHLOCKER WITH START COMMAND
-----> starting production servers
production node:
user : root
host : 51.140.86.5
path : /home/hladmin
response: ok
START DONE!
Run Code Online (Sandbox Code Playgroud)
但是当我们netstat -plnt按照check-running-services-on-linux的建议运行时,
我们注意到edeliver在随机 TCP端口上启动了Phoenix App :
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
Run Code Online (Sandbox Code Playgroud)
在这种情况下,应用程序在PORT上运行38863,即使我们的prod.exs配置文件已经将PORT 硬编码为4000 ,我们也有一个环境变量可以根据说明(仅在案例中)将其设置到4000我们的.profile文件中.
所以我的问题是:
edeliver在随机 TCP端口上启动Phoenix App ...?和
edeliver启动端口上的应用程序4000?我们.deliver/config在GitHub上.
我们已经尝试读取日志中/home/{username}/{appname}/var/log按@在dogbert的说明:
如何查看生产测井凤凰Web应用程序使用Edeliver部署?
但既不是 erlang.log.1或者run_erl.log让我们更聪明 ...... :-(
任何帮助理解这一点将非常感谢!(请和谢谢!)
注意:遗憾的是,虽然这个Q:Edeliver - 成功部署后无法在端口4000上访问 听起来类似,但该解决方案对我们不起作用(我们尝试过)
在我看来,您似乎没有阅读有关通过版本进行部署的 Phoenix 文档。Distillery也有这方面的文档。
简而言之,这就是您的配置中需要的:
config :healthlocker, Healthlocker.Endpoint
server: true,
root: ".",
version: Mix.Project.config[:version]
Run Code Online (Sandbox Code Playgroud)
确保在您的 prod 文件中设置了这三个配置选项config.exs,然后就可以开始了。
| 归档时间: |
|
| 查看次数: |
158 次 |
| 最近记录: |