我有一个应用程序,我已成功推送了几次,当我尝试将其推送到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)>'
[已添加 - 12/13/12]有趣的是 - 克隆本地仓库并使用它创建一个新的Heroku应用程序工作正常,因此它看起来与实例而不是回购。触摸文件重新部署并不能解决问题。
答案 0 :(得分:0)
原来这是.slugignore中的一个问题。
我通过观察Heroku如何构建捆绑并在本地再现它来诊断出这一点:
bundle install --without development:test --path vendor/bundle --binstubs bin/ --deployment.
检查生成的包我确认丢失的yaml_source文件(来自rails_config)确实存在。然后我记得有一半注意到slug编译器说它删除了3个文件而不是通常的1个文件。
我有一个顶级'来源'目录,我试图用
排除sources
<。>在.slugignore文件中。这与gem中的sources目录匹配。将条目更改为预期的
/sources/
一切都很好。
这留下了Heroku似乎在不同的实例中使用不同版本的Slug Compiler并且它似乎已经改变的观察结果。 (我的应用程序适用于不同的实例,并且.slugignore文件长时间不正确)