アプリの作成、デプロイ
インストールも終わったので、
いよいよHerokuでsinatraを使って何かします。
結局、以下の作業が必要でした。
- SSHの設定
- アプリ用フォルダの作成、Gitの初期化
- 設定ファイルの記述
- ローカルでテスト
- Heroku上にアプリを作成
- 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
SinatraはRackという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/
でアクセスできます。