二つ目の信号を右

メモ、記録

アプリの作成、デプロイ

インストールも終わったので、
いよいよHerokuでsinatraを使って何かします。
結局、以下の作業が必要でした。

  1. SSHの設定
  2. アプリ用フォルダの作成、Gitの初期化
  3. 設定ファイルの記述
  4. ローカルでテスト
  5. Heroku上にアプリを作成
  6. Herokuにpush

1. SSHの設定

HerokuとはSSHで通信を行うため、公開鍵を登録しておくと便利です。
というか、公開鍵を作っておけば、初回ログイン時に勝手に登録してくれるようです。

Git bashを起動し、まずは鍵を作成…

$ ssh-keygen -t rsa

そしてHerokuにログイン…
鍵を登録していないとメールアドレスとパスワードを聞かれます。

$ heroku login

Found existing publick key~などと表示された後、公開鍵が登録されます。
登録してくれない場合は下記のリンクを参考にしてください。

参考:ID-Blogger: HerokuでSSH公開鍵(public key)を登録する方法(と削除して再登録する方法)

2. アプリ用フォルダの作成、Gitの初期化

Herokuでは作ったアプリをGitを使ってデプロイします。
そこで、作ったアプリを保管するためのフォルダをつくり、git initしておく必要があります。
新しくフォルダを作り、初期化します…

$ git init

3. 設定ファイルの記述

Sinatraで何かするにあたって、以下のファイルを作成し、設定内容を記述しておきます。

  • Gemfile

bundlerに○○をインストールしろ、require時はこういう名前だ、などなどを指示するファイルです。Sinatraの利用には最低限以下の項目を書いておく必要があります。

source :rubyforge
gem "sinatra"
  • app.rb

アプリの本体です。今回はテストなので適当。

#!/usr/bin/ruby
require 'sinatra'
get '/' do
"hogeda_ug"
end
  • config.ru

SinatraRackというHTTP送受信モジュールを用いて作成されているので、rackupというコマンド経由で起動しておくと、Sinatraの起動前に通信の設定とかができる模様。config.ruはrackupのコマンドを実行する際の設定ファイルです。

require 'rack'
require './app'
run Sinatra::Application
  • Procfile

Herokuではforemanを使ってプロセスを管理しているので、Procfileに起動時のコマンドを記述する必要があるようです。

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

4. ローカルでテスト

まず、bundler installで必要なライブラリをインストールしておきます。
で、起動なんですが、何かforemanが重いので、rackupで直接起動…

$ bundler install
$ bundle exec rackup config.ru -p 5000

WEBrick::HTTPServer#start という感じでサーバが起動します。
http://127.0.0.1:5000/にアクセスしてみるとhogeda_ugと出ます。OK!

動作確認が取れたので、git add、git commitしておきます。

$ git add .
$ git commit -m "hogeda_ug"

5. Heroku上にアプリを作成

Herokuにpushする前に、アプリを作成しておきます。
createの後の引数は最終的にアドレスの一部になります…

$ heroku create hogedaug

うまくいくと、hogedaugの作成が完了した旨と、remoteにherokuを追加した旨が通知されます。

6. Herokuにpush

push!!!

$ git push heroku master

pushが終わると、bundlerでのinstallが始まります。そして、しばらくすると…

launching... done,

と表示され、アプリのデプロイが完了します!

デプロイしたアプリには、
https://(createで指定したアプリ名).herokuapp.com/

でアクセスできます。

梅田地下街シームレス検索 http://www.umeda-ug.net