----
追記:
現段階では動いてはいますがサイトURLに飛べないです。
アプリケーションエラーがまだ消えてませんでした。
追記の追記:
プログラムを動かしながら、webプロセスを確保するには2dyno必要らしいので、課金しないとむりっぽいです。workingのdynoを1、webのdynoを1確保します。
その後、Procfileにあたらしくwebアプリに関する記述を追加し、
(私は「web: bundle exec thin start -p $PORT -e $RACK_ENV」って書いております)
$ heroku ps:scale web=1
とかすれば飛べるようになります。
でもherokuではプログラムからjsonへの書き出しが保証されていないみたいで、
結局この方法では実装できなかったという…w
----
RailsアプリをHerokuにUpしている例はたくさんあったのですが、RubyでかかれたコードをUpしている例は少なかったのでメモ。
はじめ、
・test.rb
・test.json
の2つのコードしかいれずにgit push heroku masterしたらpushできなかった。
いろんなサイトにこういう時はindex.phpのファイルをおけばいいと書いてあるが、
私が書いているのはphpじゃなくてrubyである。
index.phpをいれるとphpのコードとして認識されてしまう。
わからなすぎてHerokuの知り合いに質問してみると、
GemfileをいれるとRubyのコードとして認識されるらしい。
ほほー。
でもGemfileになに書いていれとくんだ?
まあとりあえずGemfileにはつかったgemをかいておいた。
それでbundle installしておいた。
やり方あってるのか心配だー
で、この段階でのfile構成
・test.rb
・test.json
・Gemfile
・Gemfile.lock(Gemfileをつくってbundle installしたら自動でできる)
これでもたしかダメだよってherokuさんに怒られた。
どうやらProcfileというものをつくらなきゃいけないらしい。
英語の資料あったぜ!
https://devcenter.heroku.com/articles/procfile
Procfileに関しては日本語資料がまだまだ少なくて、あんまり書き方わからない…
clockworkを使って、定期的に動くコードを書いていたので、
Procfileには
clock: bundle exec clockwork test.rb
と書いておいた。
clockwork参考資料:
Herokuでcron?もう古いかも、それ
ここのサイトすごく参考にさせてもらった。
それにしてもclockwork便利すぎてやばい。
1秒ごとにコードを動かしたりできる。なんかcron以上にすごい。
で、この段階のファイル構成。
・test.rb
・test.json
・Gemfile
・Gemfile.lock
・Procfile
これで、git push heroku masterは通るようにはなったんだけど、
heroku logs --tailでログをみているとエラーがでている模様。
これはアバウトに言うとwebアプリじゃないのにwebアプリの経路を断ち切っていなかったのが原因みたいで、
$ heroku ps:scale clock=1
とコマンドうったら治った。
なぜclock=1と書いているかというと、Procfileにclock: bundle exec clockwork test.rbと書いて、アプリ名をclockにすると指定したから。
1というのは1dynoをこのアプリにわりあてますよって意味らしい。
Webアプリは自動で1dyno確保しているけど、webアプリじゃないと自分でやらなきゃいけないらしいのです。
dynoって何?とりあえずよくわからないけどdynoってやつがわりあてられると動くらしい。
とりあえずこれで動くようになった!!わーい!!
で、この段階のファイル構成。
・test.rb
・test.json
・Gemfile
・Gemfile.lock
・Procfile
・index.html.erb
あ、なぜindex.html.erbが増えてるかというとね!
先輩にherokuでコードを共有しつつ作業をしていたら、
いつのまにかindex.html.erbを足してくれていた。
理由は正直よくわからないけど、まあ動いたからいっか。
index.phpを加えるのと同じノリなのかしらね。
(適当でごめんなさい)
以上、Herokuに関する適当なメモでした。