【问题标题】:Phoenix on Heroku: error R10Heroku 上的 Phoenix:错误 R10
【发布时间】:2016-03-25 22:33:48
【问题描述】:

在 Heroku 上使用 Phoenix 时遇到一个奇怪的错误,它似乎没有正确绑定到端口。

遇到 phoenix 未绑定到 $PORT 的情况。 Heroku 的日志:

2016-03-25T22:22:54.716907+00:00 heroku[web.1]:状态从崩溃变为开始

2016-03-25T22:23:03.156662+00:00 heroku[web.1]:使用命令mix phoenix.server启动进程

2016-03-25T22:23:07.985368+00:00 app[web.1]: [info] 在端口 4000 上使用 http 与 Cowboy 一起运行 AppName.Endpoint

2016-03-25T22:23:10.027386+00:00 app[web.1]: 25 Mar 22:23:10 - info: 将 5 个文件编译成 2 个文件,在 1.5 秒内复制 3 个

2016-03-25T22:24:03.442109+00:00 heroku[web.1]: 错误 R10(启动超时)-> Web 进程在启动后 60 秒内无法绑定到 $PORT

2016-03-25T22:24:03.442109+00:00 heroku[web.1]:使用 SIGKILL 停止进程

2016-03-25T22:24:04.195291+00:00 heroku[web.1]:进程以状态 137 退出

2016-03-25T22:24:04.211713+00:00 heroku[web.1]:状态从开始变为崩溃

我的 prod.exs:

config :appname, AppName.Endpoint,
  http: [port: {:system, "PORT"}],
  url: [scheme: "https", host: "AppName.herokuapp.com", port: 443],
  force_ssl: [rewrite_on: [:x_forwarded_proto]],
  cache_static_manifest: "priv/static/manifest.json",
  secret_key_base: System.get_env("SECRET_KEY_BASE")

看起来它会转到 4000 端口,而不是 Heroku 想要的任何端口,我不知道为什么。

【问题讨论】:

    标签: heroku elixir phoenix-framework


    【解决方案1】:

    修复是双重的:

    1. 使用 phoenix buildpack 配置并导出 PORT,如下所示:config_vars_to_export=(DATABASE_URL PORT)
    2. 避免在不重新编译应用的情况下更改MIX_ENV,因为该行为不受支持,如here 所述。

    【讨论】:

    • 更新 (20/03/17):HashNuke buildpack 不再支持 config_vars_to_export 设置;所有环境变量都将自动导出并可供构建使用。
    猜你喜欢
    • 2015-09-22
    • 2014-01-13
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 2016-04-15
    • 2019-03-02
    • 2020-05-20
    相关资源
    最近更新 更多