Wdrożenie aplikacji Sinatra na Heroku

Mam prostą aplikację Sinatra.

Www.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

Ale jak uruchomię swoją aplikację na Heroku to będę miał błąd w logach:

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=
Jak mogę to naprawić?
Author: Eric Wendelin, 2012-03-27

6 answers

Potrzebujesz pliku Procfile obok config.ru, aby powiedzieć Heroku, jak uruchomić aplikację. Oto treść przykładu Procfile:

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

Heroku Ruby docs on Procfiles

EDIT: oto przykład config.ru z jednej z moich aplikacji sinatra/Heroku:

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

Możesz potrzebować Sinatry i rubygems, aby to zadziałało.

 14
Author: Eric Wendelin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-08 21:58:07

Oto jak stworzyć minimalną aplikację sinatra, która zostanie wdrożona do 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

Wpisz te polecenia w linii poleceń, aby je wdrożyć (bez znaków $):

$ 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

Następnie przetestuj swoją aplikację:

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

I powinieneś zobaczyć:

hello world
 25
Author: Patrick Oscity,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-11 13:21:43

Miałem ten problem wiele razy w przeszłości, a to wszystko dlatego, że nie uwzględniłem mojego config.ru Plik z wymaganiem [app].rb i następnie pcha się do Heroku. Nawet gdybym go potem dodał i zrestartował, Heroku nigdy by go nie podniósł.

  • Zniszcz swoją małą aplikację na stronie Heroku ( http://www.heroku.com )
  • Następnie usuń pilota z folderu projektu

    $ git remote rm heroku
    
  • Następnie odtworzyć aplikację

 10
Author: rpearce,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-30 09:10:58

Spróbuj ponownie uruchomić heroku

heroku restart

Tutaj więcej dyskusji: nieznany błąd heroku

 0
Author: Said Kaldybaev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:33:22

Dodając gem 'heroku' do pliku Gemfile, uruchomiłem go. Nie jest potrzebny Procfile.

 0
Author: cavneb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-26 21:44:42

Jako aktualizacja, oto nieco bardziej minimalistyczna aplikacja, którą stworzyłem i potwierdziła, że działa od dziś. Cienki klejnot nie był potrzebny, a Procfile nie był potrzebny, aby uzyskać początkową działającą aplikację.

Gemfile

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

Config.ru

require './app'

run Sinatra::Application

Uwaga: linia require używa"./ app 'zamiast ' app'.

App.rb

require 'sinatra'

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

Jeśli chcesz użyć tego szablonu, możesz go skopiować, spakować i wcisnąć repo 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
Author: sealocal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-25 06:55:23