Herokuのruby-sampleを試す
なんとなく「Herokuさわってみるかなぁ」というテンションになったので、ひとまずHello Worldまでやってみた。
環境はOSX Mountain Lion。
まずheroku
コマンドを使えるようにする。
-> % brew install heroku-toolbelt ==> Downloading http://assets.heroku.com.s3.amazonaws.com/heroku-client/heroku-client-2.39.4.tgz ######################################################################## 100.0% 🍺 /usr/local/Cellar/heroku-toolbelt/2.39.4: 371 files, 3.1M, built in 4 seconds
Heroku用の公開鍵が必要になるので作っておく。
-> % ssh-keygen -t rsa
リネーム。~/.ssh/id_rsa.pub
-> ~/.ssh/heroku.pub
, ~/.ssh/id_rsa.pub
-> ~/.ssh/heroku
。
次にHerokuへの認証を行なう。
-> % heroku login Enter your Heroku credentials. Email: hoge@example.com Password (typing will be hidden): Found the following SSH public keys: 1) hoge.pub 2) heroku.pub 3) fuga.pub Which would you like to use with your Heroku account? 2 Uploading SSH public key /Users/hoge/.ssh/heroku.pub... done Authentication successful.
Heroku用公開鍵を選ぶ。これで公開鍵がHerokuにアップロードされ、公開鍵認証が利用できるようになる。
次にアプリケーションのデプロイを行っていく。サンプルアプリケーションをcloneする。
-> % cd WORKING_DIRECTORY -> % git clone git://github.com/heroku/ruby-sample.git Cloning into 'ruby-sample'... remote: Counting objects: 13, done. remote: Compressing objects: 100% (10/10), done. remote: Total 13 (delta 2), reused 8 (delta 1) Receiving objects: 100% (13/13), done. Resolving deltas: 100% (2/2), done.
次にheroku create
で環境を作成する。これにより、Heroku上でのエンドポイントが生成される。
-> % heroku create Creating shielded-sierra-5383... done, stack is cedar http://shielded-sierra-5383.herokuapp.com/ | git@heroku.com:shielded-sierra-5383.git Git remote heroku added
次にHeroku側にアプリケーションをpushする。remote originをheroku
としてpushする。
-> % git push heroku master The authenticity of host 'heroku.com (50.19.85.132)' can't be established. RSA key fingerprint is 8b:48:5e:67:0e:c9:16:47:32:f2:87:0c:1f:c8:60:ad. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'heroku.com,50.19.85.132' (RSA) to the list of known hosts. Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
しかしここで認証エラーがでてしまった。ruby-sample
の.git/config
をみてみたら以下のようになっていた。
# 抜粋 [remote "heroku"] url = git@heroku.com:shielded-sierra-5383.git fetch = +refs/heads/*:refs/remotes/heroku/*
heroku.com
にgit
ユーザでアクセスしようとしているので、このリクエストに先ほどの公開鍵を使うようにする。~/.ssh/config
に以下のように追記する。
Host heroku.com User git HostName heroku.com identityfile ~/.ssh/heroku
鍵を設定したので、remote origin heroku
について確認する。
-> % git remote show heroku Warning: Permanently added the RSA host key for IP address '50.19.85.156' to the list of known hosts. * remote heroku Fetch URL: git@heroku.com:shielded-sierra-5383.git Push URL: git@heroku.com:shielded-sierra-5383.git HEAD branch: (unknown)
無事リクエストが通った。ということでheroku
ブランチにpushする。
-> % git push heroku master Counting objects: 13, done. Delta compression using up to 8 threads. Compressing objects: 100% (9/9), done. Writing objects: 100% (13/13), 1.28 KiB, done. Total 13 (delta 2), reused 13 (delta 2) -----> Ruby/Rack app detected -----> Using Ruby version: ruby-2.0.0 -----> Installing dependencies using Bundler version 1.3.2 Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment Fetching gem metadata from https://rubygems.org/.......... Fetching gem metadata from https://rubygems.org/.. Installing daemons (1.1.9) Installing eventmachine (0.12.10) Installing rack (1.4.1) Installing tilt (1.3.3) Installing sinatra (1.1.0) Installing thin (1.4.1) Using bundler (1.3.2) Your bundle is complete! It was installed into ./vendor/bundle Cleaning up the bundler cache. -----> WARNINGS: You have not declared a Ruby version in your Gemfile. To set your Ruby version add this line to your Gemfile: ruby '2.0.0' # See https://devcenter.heroku.com/articles/ruby-versions for more information." -----> Discovering process types Procfile declares types -> web Default types for Ruby/Rack -> console, rake -----> Compiled slug size: 25.8MB -----> Launching... done, v3 http://shielded-sierra-5383.herokuapp.com deployed to Heroku To git@heroku.com:shielded-sierra-5383.git * [new branch] master -> master
これでもうデプロイが完了したらしい。簡単。heroku open
でデプロイ先のURLをブラウザで開くことができる。
-> % heroku open Opening shielded-sierra-5383... done