21
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

Heroku:Buildpackエラーでハマった

はじめに

基本的すぎてどこにも書いてなかったこと
同じ初心者に光あらんことを・・・(自戒も込めて)

環境

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を見つけられずエラーを出していた。
キャプチャ.PNG
これが期待されるGitの状態。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
21
Help us understand the problem. What are the problem?