推送到Heroku时app的位置

时间:2012-01-05 17:12:31

标签: ruby-on-rails ruby git version-control heroku

我在git下有一个Rails项目。

结构是:

SomeProject
    -Docs
    -Src
        -Rails

Rails是rails应用程序的根目录,但SomeProject是repo的根目录。

当我尝试推送到Heroku时,我得到:

  

Heroku推送拒绝,未检测到Cedar支持的应用

所以我的问题是:

  1. 这是否会产生,因为repo的rooot和Rails应用程序的根目录是不同的?

  2. 如果有,我可以告诉Heroku Rails应用程序的根目录在哪里?

  3. 如果不是还会导致此问题?

2 个答案:

答案 0 :(得分:3)

这不是一个理想的情况,特别是对于heroku,但普遍接受的解决方案非常简单。代表你做一些工作,但没什么不好。

  1. 创建两个存储库,一个用于rails应用程序,另一个用于“SomeProject”。

  2. 将rails应用程序作为子模块添加到“SomeProject”。您可以使用git submodule add git@github.com:user/rails_app/ rails之类的内容轻松添加它们。这会将rails应用程序添加为项目的子模块,因此它本身就是它自己的存储库。查找更多信息here

  3. 将heroku作为远程模块添加到子模块中,当您要部署应用程序时,请从子模块推送,而不是整个项目。

  4. 这并不像git push heroku master:'/rails'那么容易,但不存在这样的事情(无论如何)。

    希望这有帮助!

答案 1 :(得分:1)

最简单的解决方案是将您的Rails应用程序拆分到自己的存储库中,正如andrewpthorp建议的那样。

另一个解决方案是根据heroku/heroku-buildpack-ruyby在单独的存储库中编写您自己的buildpack,但是已经过自定义以支持您的备用项目布局,并使用它来部署您的应用程序。