heroku コマンドを使用する事で様々な操作を行う事ができる。とりあえず自分が試してみたものや見つけたものをメモ。
ログインする
heroku login コマンドでログインできる。
$ heroku login
Enter your Heroku credentials.
Email: hoge@example.com
Password (typing will be hidden):
Your Heroku account does not have a public ssh key uploaded.
Found an SSH public key at /home/hoge/.ssh/id_rsa.pub
Would you like to upload it to Heroku? [Yn] y
Uploading SSH public key /home/hoge/.ssh/id_rsa.pub... done
Authentication successful.
メールアドレスとパスワードを入力し、公開鍵をアップロードする必要がある。公開鍵はなければつくろう。
アプリを作成する
heroku create コマンドでアプリを作成できる。
$ heroku create
Creating afternoon-reaches-9404... done, stack is cedar-14
https://afternoon-reaches-9404.herokuapp.com/ | git@heroku.com:afternoon-reaches-9404.git
Git remote heroku added
アプリを削除する
heroku destroy でアプリ名を指定することでアプリを削除できる。
$ heroku destroy --app hoge-railstutorial
! WARNING: Potentially Destructive Action
! This command will destroy hoge-railstutorial (including all add-ons).
! To proceed, type "hoge-railstutorial" or re-run this command with --confirm hoge-railstutorial
> hoge-railstutorial
Destroying hoge-railstutorial (including all add-ons)... done
アプリの情報を表示
info コマンドで現在のアプリの情報を表示できる。
$ heroku info
=== hoge-railstutorial
Addons: heroku-postgresql:hobby-dev
Dynos: 1
Git URL: git@heroku.com:hoge-railstutorial.git
Owner Email: hoge@example.com
Region: us
Repo Size: 568k
Slug Size: 26M
Stack: cedar-14
Web URL: https://hoge-railstutorial.herokuapp.com/
Workers: 0
アプリの一覧を表示
list コマンドを使用するとアプリの一覧を出せる。
$ heroku list
=== My Apps
hoge-railstutorial
アプリの名前を変更
heroku create した段階では適当に作られる名前を自分の好きなように変更するには heroku rename を使用する。heroku 全体でユニークである必要があるらしい。
$ heroku rename hoge-railstutorial
Renaming afternoon-reaches-9404 to hoge-railstutorial... done
https://hoge-railstutorial.herokuapp.com/ | git@heroku.com:hoge-railstutorial.git
Git remote heroku updated
git remote も書き換えてくれる。
ステータスのチェック
異常があったら何か表示されるのだろうか。今のところ正常な場合しか見てない。
$ heroku status
=== Heroku Status
Development: No known issues at this time.
Production: No known issues at this time.
ログを見る
もちろんログも。コマンドは log じゃなくて logs なのでよく間違えそう。
$ heroku logs
2014-11-12T09:58:58.815949+00:00 app[web.1]: vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.7/lib/active_support/tagged_logging.rb:68:in `tagged'
2014-11-12T09:58:58.815972+00:00 app[web.1]: vendor/ruby-2.1.4/lib/ruby/2.1.0/webrick/httpserver.rb:138:in `service'
2014-11-12T09:58:58.815950+00:00 app[web.1]: vendor/bundle/ruby/2.1.0/gems/railties-4.1.7/lib/rails/rack/logger.rb:20: in `call'
...
heroku logs には以下の引数も利用できる。
$ heroku logs --help
-n, --num NUM # 何行表示するか
-p, --ps PS # 指定したプロセスのみ表示
-s, --source SOURCE # 指定したソースのみ表示
-t, --tail # リアルタイム表示
メンテナンスモード
heroku maintenance コマンドによりメンテナンス画面のオン/オフを切り替えれる。
$ heroku maintenance:on
Enabling maintenance mode for hoge-railstutorial... done
$ heroku maintenance:off
Disabling maintenance mode for hoge-railstutorial... done
コマンドを実行する
heroku サーバ上でコマンドを実行するには heroku run を使用する。以前は heroku console が利用できたようだが現在このコマンドは削除されているようだ。
irb を実行してみる。
$ heroku run irb
Running `irb` attached to terminal... up, run.2394
irb(main):001:0> 1 + 1
=> 2
bash を実行、ファイルの一覧を表示。
$ heroku run bash
Running `bash` attached to terminal... up, run.3615
~ $ ls
app bin config config.ru db Gemfile Gemfile.lock lib log public Rakefile README.rdoc test tmp vendor
heroku 上でデータベースを作成する場合もローカルで行う時のコマンドに heroku run をつければ良い。
$ heroku run rake db:migrate
レスポンス悪いがきっとサーバが遠いからだろう。
環境変数を見る/設定する
heroku config を使用すると環境変数を見たり設定したりできる。
何も指定しないと一覧を表示する。
$ heroku config
=== hoge-railstutorial2 Config Vars
DATABASE_URL: postgres://example:hoge@fuga.amazonaws.com:5432/piyo
HEROKU_POSTGRESQL_GRAY_URL: postgres://example:hoge@fuga.amazonaws.com:5432/piyo
LANG: en_US.UTF-8
RACK_ENV: production
RAILS_ENV: production
SECRET_KEY_BASE: 0ca642...
set/get で値を設定、指定したKEYの値を取得できる。
$ heroku config:set LANG=ja_JP.UTF-8
Setting config vars and restarting hoge-railstutorial2... done, v10
LANG: ja_JP.UTF-8
$ heroku config:get LANG
ja_JP.UTF-8
unset で削除できる。
$ heroku config:unset TESTKEY
Unsetting TESTKEY and restarting hoge-railstutorial2... done, v12
stack
$ heroku stack
=== hoge-railstutorial2 Available Stacks
bamboo-mri-1.9.2
bamboo-ree-1.8.7
cedar
* cedar-14
変更するには heroku stack:set をやる。
$ heroku stack:set cedar-14
dyno を再起動する
heroku restart コマンドで再起動できる。
$ heroku restart
Restarting dynos... done
ブラウザで開く
自分は VPS 上で行っているので使えないが、heroku open コマンドでアプリをブラウザで開く事ができる。
$ heroku open
Opening hoge-railstutorial... xprop: unable to open display ''
ブラウザが無い以前にディスプレイが無いのでもちろん開けない。