1

昨晚我试图对我的一个旧应用程序(Rails 3.0.0,Ruby 1.8.7)进行一些简单的更改,并在部署时遇到了许多问题。我正在使用 Moonshine 来处理部署。

我可以正常运行cap deploy,但随后出现以下乘客错误

no such file to load -- /srv/BBRatboard/releases/20130409025824/config/environment

我不确定它是否相关,但是当我 ssh 进入盒子时,下面的整个配置文件夹/srv/BBRatboard/current/config是空的。这是设计使然还是我的部署出了问题?

许多人已经能够通过调整environment.rb文件(https://www.sit.auckland.ac.nz/Ruby_on_Rails_deployment)的权限来解决这个问题,但我什至无法在我的生产服务器上看到它。

我可以提供任何必要的细节,任何帮助将不胜感激,因为该应用程序目前处于损坏状态。

非常感谢。

4

2 回答 2

0

经过一番挖掘,看起来这是不同版本的 capistrano/moonshine 以及它们处理共享资产的方式的问题。

我遵循了https://github.com/railsmachine/moonshine/wiki/Moonshine.yml-files-not-being-loaded-or-configuration-object-appears-empty的建议

即用 tmp 替换 config ,它现在似乎可以工作了!

于 2013-04-09T04:24:56.237 回答
0

您肯定需要文件存在于您的config目录中。看起来您的cap deploy输出显示它正在删除版本的config目录:

执行“chmod -R -- g+w /srv/BBRatboard/releases/20130409032459 && rm -rf -- /srv/BBRatboard/releases/20130409032459/system && ln -s -- /srv/BBRatboard/shared/system /srv /BBRatboard/releases/20130409032459/system && rm -rf -- /srv/BBRatboard/releases/20130409032459/log && ln -s -- /srv/BBRatboard/shared/log /srv/BBRatboard/releases/20130409032459/log && rm -rf -- /srv/BBRatboard/releases/20130409032459/pids && ln -s -- /srv/BBRatboard/shared/pids /srv/BBRatboard/releases/20130409032459/pids && rm -rf -- /srv/BBRatboard/releases /20130409032459/config && ln -s -- /srv/BBRatboard/shared/config /srv/BBRatboard/releases/20130409032459/config"

(看最后,rm -ff -- /srv/BBRatboard/releases/20130409032459/config)。虽然它也试图将目录符号链接configshared/config目录(ln -s -- /srv/BBRatboard/shared/config /srv/BBRatboard/releases/20130409032459/config

我猜该shared/config目录是在cap deploy:setup(基于建议在此之前运行它的Moonshine 文档cap deploy)期间创建的。我会确保您cap deploy:setup事先运行了该任务,并检查您的shared/config目录是否environment.rb包含它声称丢失的文件等内容。

于 2013-04-09T03:30:33.997 回答