1

Herokuにプッシュしようとするとクラッシュし始めたばかりのアプリを数回正常にプッシュしました。

私が行った変更は yaml 構成ファイルだけだと思ったので、そのファイルを以前のバージョンに置き換えましたが、クラッシュは続きます。これを追跡する方法について何か考えはありますか?

heroku[web.1]: Starting process with command `bundle exec thin start -R config.ru -e production -p 38838`
app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require': cannot load such file -- rails_config/sources/yaml_source (LoadError)
app[web.1]:     from /app/vendor/bundle/ruby/1.9.1/gems/rails_config-0.3.1/lib/rails_config.rb:4:in `<top (required)>'

[追加 - 2012 年 12 月 13 日] 興味深いことに、ローカル リポジトリのクローンを作成し、それを使用して新しい Heroku アプリを作成すると、正常に動作するため、リポジトリではなくインスタンスに関連しているように見えます。ファイルに触れて再デプロイしても、それは修正されません。

4

1 に答える 1

0

これは .slugignore の問題であることが判明しました。

Heroku がどのようにバンドルを構築し、それをローカルで再現するかを調べて、これを診断しました。

bundle install --without development:test --path vendor/bundle --binstubs bin/ --deployment.

結果のバンドルを確認すると、欠落している yaml_source ファイル (rails_config から) が実際に存在することが確認されました。それから、slug コンパイラーが通常の 1 つではなく 3 つのファイルを削除していると言っていたことに半分気づいたことを思い出しました。

除外しようとしていた最上位の「ソース」ディレクトリがあります

sources

.slugignore ファイルで。これは、gem のソース ディレクトリと一致していました。エントリを意図したものに変更しました

/sources/

そしてすべてが再び良いです。

これにより、Heroku がさまざまなインスタンスでさまざまなバージョンの Slug Compiler を使用しているように見え、変更されたように見えるという観察結果が残ります。(私のアプリは別のインスタンスで動作し、.slugignore ファイルは長い間正しくありません)

于 2012-12-13T22:26:07.293 に答える