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 日] 有趣的是 - 克隆本地 repo 并使用它创建一个新的 Heroku 应用程序工作正常,所以它看起来是实例而不是 repo。触摸文件重新部署并不能修复它。

4

1 回答 1

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/

一切都好起来了。

这留下了 Heroku 似乎在不同情况下使用不同版本的 Slug 编译器的观察结果,并且它似乎已经改变。(我的应用程序在不同的实例上运行,并且 .slugignore 文件长期以来一直不正确)

于 2012-12-13T22:26:07.293 回答