サイトアイコン Amelt.net

Rails4でheroku push rejectedされたり/usr/bin/env:rubyとかのエラー対処方法のメモ

Amelt

Amelt

This post is also available in: English-US (英語)

Ruby on Rails4 で heroku デプロイしようとした時のエラーの対処方法のメモです。

heroku push rejected no cedar-supported app detected

git heroku push master すると heroku push rejected no cedar-supported app detected とエラーがでる場合です。
herokuのドキュメント(https://devcenter.heroku.com/articles/buildpacks)を読んだ感じだと、Gemfileがない場合か、ビルドパックがない場合に出るエラーみたいです。

ビルドパックはherokuコマンドの他、herokuダッシュボード>開発アプリを選択>SettingsのAdd Buildpacksからも追加できます。

また、railsプロジェクトを編集した場合には忘れず、git add/commitしてください。

git add .
git commit -m "sample memo"
git heroku push master

Detected sqlite3 gem which is not supported on Heroku.

herokuはsqlite3には対応していないのだそうです。
なので、Gemfileを修正して、development/test環境の場合にはsqlite3を使い、production環境の場合にはPostgreSQLを使うように設定しました。

#Gemfile
group :development, :test do
  # Use sqlite3 as the database for Active Record
  gem 'sqlite3'
end
#Gemfile
  group :production do
 	 gem 'pg',             '0.17.1'
 	 gem 'rails_12factor', '0.0.2'
 	 gem 'puma',           '2.11.1'
 end

この際にも忘れず、git add/commitしてください。

git add .
git commit -m "sample memo"
git heroku push master

/usr/bin/env: ruby2.3: No such file or directory

herokuにプッシュ後、以下のコマンドを実行してデータベースにマイグレーションファイルの内容を適用する必要があります。

heroku run rake db:migrate 

そして、以下のエラーに遭遇。

/usr/bin/env: ruby2.3: No such file or directory 

以下の3ファイルの内容(rubyのパス)を編集して対処しました。

bin/bundle
bin/rails
bin/rake

以下、エラーが出る、元のパス。

#!/usr/bin/env ruby2.3

以下、編集後。

#!/usr/bin/env ruby

そして忘れず、git add/commitしてください。

git add .
git commit -m "sample memo"
git heroku push master

参考:
heroku Dev Center
stackoverflow