HerokuでRuby Sinatra WEBアプリを5分で公開する
HerokuでRuby Sinatra WEBアプリを公開する方法をまとめました。とりあえず「hello world!」を表示するだけのWEBアプリですが、5分以内に公開までいけるようにしてみました。
公開日:2018年8月30日
ファイル構成
- Gemfile
- Gemfile.lock
- Procfile
- app.rb
- config.ru
app.rbに基本的な機能を書いて、config.ruからapp.rbを呼び出して動かす、よくある構成です。
Gemfile & Gemfile.lock (Ruby Gemを管理する)
source "https://rubygems.org"
gem "sinatra"
bundle initして個別に作成てもOKです。
ファイルを作成したら、「bundle install」でインストールします。
プロジェクトディレクトリにパスを引かなくても、デプロイする時にheroku側でbundle installしてくれるのですが、Gemfile.lockとの整合性が取れないとエラーでデプロイができなくなるようです。
というわけで、変更を加えた際も、Gemfile.lockを作成するためにbundle installはかけます。
Procfile (herokuのWeb Dynoを設定する)
HerokuではWeb Dynoというプロセスを消費する形式になっていて、それを設定するのがProcfileです。
こちらにbundle execを記述しておくことで、config.ru経由でsinatraアプリを呼び出してくれます。
web: bundle exec rackup config.ru -p $PORT
config.ru (SinatraをRackアプリとして立ち上げる)
Sinatraビルトインサーバーではなく、Rackアプリとして起動させます。
require './app.rb'
run Sinatra::Application
app.rb (Sinatraアプリ本体)
ようやくSinatraアプリ本体にたどり着きました。
ここからは逆に簡単で、サクッとテンプレの通りにHello Worldを表示させます。
require 'bundler/setup'
require 'sinatra'
get '/' do
'hello world!'
end
デプロイ
ここまでくればあとはデプロイするだけです。ローカル環境でテストするべきなのですが、とりあえず公開するだけなのでいきなりデプロイします。
git add .
git commit -m "first commit"
git push heroku master
確認
デプロイでエラーが出なかったら、「https://アプリ名.herokuapp.com/」にアクセスすれば「hello world!」とだけ表示されているはずです。
新着ノート
-
Gitlabの2段階認証下でコンテナレジストリにPushする方法
gitlab
公開日:2020年12月23日
-
HUGO
公開日:2020年4月27日
新着コード
-
cURLでCloudflare APIでキャッシュを削除する
cloudflare
公開日:2020年5月1日
-
iOS Safariでselectを含む要素にoverflow-y:scrollすると横にスクロールする時の対応
iOS
公開日:2020年4月15日