Развернуть приложение Синатра на Heroku - PullRequest
17 голосов
/ 27 марта 2012

У меня есть простое приложение Sinatra.

web.rb:

require 'sinatra'

get '/' do 
    "Hello" 
end

Gemfile: *

source :rubygems

gem 'sinatra', '1.1.0'
gem 'thin', '1.2.7'

config.ru:

require './web'
run Sinatra::Application

Но когда я разверну свое приложение на Heroku, в логах появится сообщение об ошибке:

2012-03-27T19:17:48+00:00 heroku[router]: Error H14 (No web processes running) -> GET furious-waterfall-6586.herokuapp.com/ dyno= queue= wait= service= status=503 bytes=

Как я могу это исправить?

Ответы [ 6 ]

25 голосов
/ 28 марта 2012

Вот как создать минимальное приложение sinatra, которое развертывается на heroku:

app.rb:

require 'sinatra'

get '/' do
  "hello world"
end

Gemfile:

source 'https://rubygems.org'

gem 'heroku'
gem 'sinatra'
gem 'thin'

config.ru:

require './app'
run Sinatra::Application

Введите эти команды в командной строке для развертывания (без знаков $):

$ bundle install
$ git init
$ git add -f app.rb Gemfile Gemfile.lock config.ru
$ git commit -am "initial commit"
$ heroku create <my-app-name>
$ git push heroku master

Затем протестируйте ваше приложение:

$ curl <my-app-name>.heroku.com

и вы должны увидеть:

hello world
17 голосов
/ 28 марта 2012

Вам нужен файл Procfile рядом с config.ru, чтобы сообщить Heroku, как запустить ваше приложение.Вот содержание примера Procfile:

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

Документы Heroku Ruby по Procfiles

РЕДАКТИРОВАТЬ: Вот образец config.ru из одного из моих синатр/ Приложения Heroku:

$:.unshift File.expand_path("../", __FILE__)
require 'rubygems'
require 'sinatra'
require './web'
run Sinatra::Application

Для работы может потребоваться синатра и рубины.

10 голосов
/ 16 июля 2012

В прошлом я уже сталкивался с этой проблемой несколько раз, и все из-за того, что я не включил свой файл config.ru в требование [app] .rb & затем отправил его в Heroku.Даже если я добавлю его потом и перезапущу, Heroku никогда не поднимет его.

  • Уничтожьте ваше маленькое приложение на сайте Heroku (http://www.heroku.com)
  • Затем удалите пульт изпапка вашего проекта

    $ git remote rm heroku
    
  • Затем заново создайте приложение

1 голос
/ 25 апреля 2015

В качестве обновления, я добавил немного более минимальное приложение, которое я создал и подтвердил, что оно работает на сегодняшний день.Тонкий драгоценный камень не был необходим, и для получения начального рабочего приложения не требовался Procfile.

Gemfile

source 'https://rubygems.org'
gem 'sinatra'

config.ru

require './app'

run Sinatra::Application

Примечание. В строке «требуется» вместо «app» используется «./app».

app.rb

require 'sinatra'

get '/' do
  'Hello, World! Find me in app.rb'
end

Если вы хотите использовать этот шаблон, вы можете скопировать его, связать и отправить репозиторий Git.

$ git init
$ git add .
$ git commit -m "initial sinatra app"
$ bundle
$ git add Gemfile.lock
$ git commit -m "bundle install"
$ heroku create
$ git push heroku master
$ heroku open
0 голосов
/ 27 сентября 2012

Добавив гем 'heroku' в Gemfile, я получил его на работу. Нет необходимости в Procfile.

0 голосов
/ 28 марта 2012

попробуйте перезапустить геройку

heroku restart

здесь больше обсуждения: неизвестная ошибка героку

...