【问题标题】:"No Procfile detected" in Sinatra app heroku pushSinatra 应用程序 heroku 推送中的“未检测到 Procfile”
【发布时间】:2014-06-14 19:25:35
【问题描述】:

我是 Sinatra 和 heroku 的新手。我正在尝试将一个小型 Sinatra 应用程序推送到 heroku,但出现此错误,

 Bundle completed (24.34s)
   Cleaning up the bundler cache.
-----> WARNINGS:
       No Procfile detected, using the default web server (webrick)
       ##I have gone over the docs a few times and added unicorn 
       https://devcenter.heroku.com/articles/ruby-default-web-server
-----> Discovering process types
       Procfile declares types -> (none)
       Default types for Ruby  -> console, rake, web

-----> Compressing... done, 17.5MB
-----> Launching... done, v8

这就是我的 gem 文件的样子

   source 'https://rubygems.org'
   ruby '2.1.1'
   gem 'sinatra'
   gem 'sinatra-contrib'
   gem 'typhoeus'
   gem 'pry'
   gem 'rspec'
   gem 'pg'
   gem 'unicorn'
   gem 'thin', '1.2.7'

我尝试了很多我在网上看到的东西,但仍然出现此错误。对不起,如果这是一个愚蠢的问题,但它让我发疯!如果您想在应用程序中看到更多文件,我会很乐意添加它们,我只是不确定要添加哪些文件..

感谢您的宝贵时间,感谢您的帮助。

【问题讨论】:

标签: heroku sinatra procfile


【解决方案1】:

Procfile 告诉 Heroku 您的应用程序可以运行的不同进程类型(命令)。对于 Ruby 应用,Heroku 希望您至少声明一个 web 进程类型,并且默认情况下还会自动启动两个额外的进程:rakeconsole

这意味着您的 Ruby 应用程序应该能够运行 Web 进程(这是实际为网页和资产提供服务的进程),运行 rake 任务,并为您提供类似 shell 的控制台(通过在应用的顶层运行 heroku run console)。

您只需将一个名为Procfile 的空白文本文件添加到您应用的顶级文件夹中,只需一行代码(如果您使用的是 Rack):

web: bundle exec rackup config.ru -p $PORT

或者,如果您使用的是纯 Sinatra(不带 Rack):

web: bundle exec ruby web.rb -p $PORT

您真的应该阅读 Heroku 开发中心的 Define a ProcfileThe Procfile 以消除任何困惑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-28
    • 2012-01-11
    • 1970-01-01
    • 2011-04-14
    • 2012-12-05
    • 1970-01-01
    • 2014-11-09
    • 1970-01-01
    相关资源
    最近更新 更多