将 Heroku 中的 Rails API 设置为 Procfile 的开发和影响?

Set Rails API in Heroku to development and impact of the Procfile?

我是 Heroku 的新手,尽管有所有文档,我还是有点不确定配置文件的用途。我可以按如下方式设置端口和环境,但 Heroku 始终以生产模式(这是有道理的)启动,而不是使用指定的端口。

估计是Heroku决定的,不能设置端口?

Procfile 是否只针对命令“heroku local”进行测试?

因为当我 运行 "heroku ps" 我得到了关于 procfile 的信息,但是 API 运行s 在生产模式下没有 procfile 端口。

感谢您的解释!

过程文件:

web: bundle exec puma -t 5:5 -p ${PORT:-3000} -e ${RACK_ENV:-development}

部署后 heroku ps 的输出:

=== web (Hobby): bundle exec puma -t 5:5 -p ${PORT:-3000} -e ${RACK_ENV:-development} (1)
web.1: up 2020/07/27 13:50:23 +0200 (~ 1m ago)

同时输出heroku日志:

Version 3.12.6 (ruby 2.5.8-p224), codename: Llamas in Pajamas
2020-07-27T11:49:32.219309+00:00 app[web.1]: * Min threads: 5, max threads: 5
2020-07-27T11:49:32.219309+00:00 app[web.1]: * Environment: production
2020-07-27T11:49:33.740321+00:00 app[web.1]: * Listening on tcp://0.0.0.0:10269

Heroku 会在 Rails 应用程序部署时同时设置 $PORT 和 $RACK_ENV。您可以通过 运行ning heroku config --app <yourapp> 确认这一点。构造 ${PORT:-3000} 表示“如果存在 PORT 变量,则使用它,否则使用值 3000。

在任何情况下,您都不能 运行 在 $PORT 中定义的端口以外的端口上使用 Heroku 应用程序,每个 dyno 都是随机的。 HTTP/S.

的任何设置都将从端口 80 和 443 转发到

如果要覆盖 RACK_ENV,可以 运行 heroku config:set RACK_ENV=development