4

我正在尝试将 ruby​​(不是rails)应用程序部署到 Heroku。我的 procfile 布局如下:

console: bundle exec ruby main.rb

但是,我的应用程序从未真正启动。系统上的日志都很安静,我看不到任何类似于任何错误输出的东西。

如果我在本地系统上运行 procfile 中所示的命令,我的程序将启动并完全按其应有的方式运行。

更有趣的是,如果我运行heroku console,应用程序会立即在控制台本身上启动。看起来像与 procfile 的一些交互?如何在不连接到 Heroku 控制台的情况下自动启动我的应用程序并捕获标准输出?

4

1 回答 1

5

如果要console运行该条目,则需要对其进行缩放

$ heroku ps:scale console=1

也就是说,Heroku 用来console表示“我用来在我的应用程序上执行某些交互式管理功能的东西”,这就是为什么heroku console运行consoleProcfile 条目为您提供双向管道的原因。您似乎有不同的含义-“我需要始终运行以执行某些后台任务的东西”。(web对 Heroku 也有特殊意义——路由网格会将 HTTP 请求发送到web进程。)因此我也会重命名它,所以它console仍然意味着“控制台”。

您可以选择main, 与main.rb, 但我鼓励您考虑该组件的实际作用,而不是同时提供 Procfile 条目和main.rb描述性标签。

于 2012-11-19T14:38:37.950 回答