我在git下有一个Rails项目。
结构是:
SomeProject
-Docs
-Src
-Rails
Rails是rails应用程序的根目录,但SomeProject是repo的根目录。
当我尝试推送到Heroku时,我得到:
Heroku推送拒绝,未检测到Cedar支持的应用
所以我的问题是:
这是否会产生,因为repo的rooot和Rails应用程序的根目录是不同的?
如果有,我可以告诉Heroku Rails应用程序的根目录在哪里?
如果不是还会导致此问题?
答案 0 :(得分:3)
这不是一个理想的情况,特别是对于heroku,但普遍接受的解决方案非常简单。代表你做一些工作,但没什么不好。
创建两个存储库,一个用于rails应用程序,另一个用于“SomeProject”。
将rails应用程序作为子模块添加到“SomeProject”。您可以使用git submodule add git@github.com:user/rails_app/ rails
之类的内容轻松添加它们。这会将rails应用程序添加为项目的子模块,因此它本身就是它自己的存储库。查找更多信息here。
将heroku作为远程模块添加到子模块中,当您要部署应用程序时,请从子模块推送,而不是整个项目。
这并不像git push heroku master:'/rails'
那么容易,但不存在这样的事情(无论如何)。
希望这有帮助!
答案 1 :(得分:1)
最简单的解决方案是将您的Rails应用程序拆分到自己的存储库中,正如andrewpthorp建议的那样。
另一个解决方案是根据heroku/heroku-buildpack-ruyby在单独的存储库中编写您自己的buildpack,但是已经过自定义以支持您的备用项目布局,并使用它来部署您的应用程序。