Rails 4BetaMichael Hartl's Ruby on Rails =チュートリアル、Herokuでアプリを起動できませんが、bundle exec Rails server
でローカルに正常に実行されます。heroku logs -t
を確認すると、次のエラーが明らかになります。
$ heroku[web.1]: State changed from crashed to starting
$ heroku[web.1]: Starting process with command `bin/Rails server
-p 33847 -e $Rails_ENV`
$ app[web.1]: bash: bin/Rails: No such file or directory
$ heroku[web.1]: Process exited with status 127
$ heroku[web.1]: State changed from starting to crashed
$ heroku[web.1]: Error R99 (Platform error) -> Failed to launch the
dyno within 10 seconds
$ heroku[web.1]: Stopping process with SIGKILL
heroku run bash
でbin
ディレクトリを確認すると、実行可能なRails
がnotあることがわかります。
~$ ls bin
erb gem irb node rdoc ri Ruby testrb
私は何を間違えましたか?チュートリアルに正確に従いました。
これに少し苦労した後、クローンした以前のRails 3プロジェクトとは異なり、Rails 4プロジェクトには/bin
ディレクトリがあることに気付きました。 /bin
にはbundle
、Rails
、およびrake
の3つのファイルが含まれていますが、グローバル.gitignore
ファイルにbin
が含まれていたため、Herokuには届きませんでした。
これは、Gitや他の言語(Javaなど)で作業する場合の非常に一般的な無視ルールであるため、これを修正するには:
~/.gitignore
からbin
を削除しますbundle install
を実行しますgit add .
およびgit commit -m "Add bin back"
を使用して変更をコミットしますgit Push heroku master
を使用してHerokuに変更をプッシュしますRails 4.0.0にアップグレードしたので、この問題もありました。
このコマンドを実行する
rake Rails:update:bin
詳細についてはこちらをご覧ください https://devcenter.heroku.com/articles/Rails4
ステップ:
bundle config --delete bin
#Bundlerのスタブジェネレーターをオフにする
rake Rails:update:bin
#新しいRails 4つの実行可能ファイルを使用
git add bin or git add bin -f
#bin /をソース管理に追加
git commit -a -m "you commit message"
git Push heroku master
heroku open
この問題は、~/bin
ディレクトリは644
の代わりに 755
。ランニング rake Rails:update:bin
ローカル(Mac/* nix)で変更をプッシュすると、問題が修正されました。
Rails 4アプリにmyapp/binディレクトリがなかったので、アプリを作成し、my app/script/Railsファイルに加えて、下からのバンドルおよびレーキファイルをコピーしました。 rvm/Ruby/binを使用して、これらをgitのリポジトリに追加し、herokuにプッシュしましたが、すべてうまくいきました。
あなたと同じ問題がありました。問題は、binフォルダーがherokuリポジトリーにプッシュされないという事実にありました。
見た、見た、そしてもう一度見た、bin /フォルダの.gitignoreファイルにはルールがなかった...
その後、多くの苦痛と苦悩の末、私はすべてのリポジトリのすべてのbinフォルダーを無視するグローバル.gitignoreを作成する数か月前に気付きました(なぜ、主よ、なぜですか?)。
グローバルな.gitignoreを削除しましたが、すべて正常に機能しました。