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ć? 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
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.
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
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ę
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
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.
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
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