#はじめに
基本的すぎてどこにも書いてなかったこと
同じ初心者に光あらんことを・・・(自戒も込めて)
#環境
windows 10
ruby 2.4.4
rails 5.1.6
#ハマったこと
Herokuへのデプロイをスルーしていたので、tutorialの7章が終わったあたりでデプロイしてみようと思ったらハマった。
##エラー内容
C:\Users\root\Desktop\rails\tutorial>git push heroku master
Counting objects: 577, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (553/553), done.
Writing objects: 100% (577/577), 80.14 KiB | 1.05 MiB/s, done.
Total 577 (delta 297), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: ! No default language could be detected for this app.
remote: HINT: This occurs when Heroku cannot detect the buildpack to use for this application automatically.
remote: See https://devcenter.heroku.com/articles/buildpacks
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to hoge-app.
remote:
To https://git.heroku.com/hoge-app.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/hoge-app.git'
##やってみたこと
エラーメッセージに従いRubyのビルドパックを足してみる
heroku buildpacks:set https://github.com/heroku/heroku-buildpack-ruby.git
結果
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> App not compatible with buildpack: https://github.com/heroku/heroku-buildpack-multi.git
remote: More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure
remote:
remote: ! Push failed
どうやら言語設定が合っていないらしい
Rubyですが!?
##原因判明
答えはここにありました。
https://devcenter.heroku.com/articles/buildpacks#detection-failure
要するに「Rubyならアプリケーションの"ルートフォルダ"にGemfileが存在しないと正しく認識されないよ」ってことらしい
##どうやら
勉強メモも一緒にGit管理しており、アプリケーションのルートフォルダの1つ上をリポジトリに登録していたため、RubyのビルドパックがGemfileを見つけられずエラーを出していた。
これが期待されるGitの状態。