当前位置:  开发笔记 > 运维 > 正文

Heroku和Github集成(如何构建项目)

如何解决《Heroku和Github集成(如何构建项目)》经验,为你挑选了2个好方法。

我正在创建一个web服务,我想将源存储在github上并在heroku上运行应用程序.到目前为止,我还没有在'网上的任何地方看到过我的确切场景,所以我会在这里问:

我想拥有以下目录结构:

/project
  .git
  README <-- project readme file
  TODO.otl <-- project outline
  ... <-- other project-related stuff
  /my_rails_app
     app
     config
     ...
     README <-- rails' readme file 

在上面,项目对应于http://github.com/myuser/project,而my_rails_app是应该推送到heroku的代码.我是否需要一个单独的分支用于rails应用程序,或者是否有一种更简单的方法,我错过了?

我想我的项目相关的非rails文件可能存在于my_rails_app中,但是rails README已经存在,并且覆盖它似乎不一致.但是,如果我离开它,我的rails应用程序的github页面将包含rails自述文件,这没有任何意义.

另外......我试着按照上面的描述进行设置并运行

git push heroku

从主项目文件夹.当然,heroku不知道我想部署子文件夹:

-----> Heroku receiving push
 !     Heroku push rejected, no Rails or Rack app detected.

yfeldblum.. 18

这是一个简单的解决方案,可能适用于您,也可能不适合您.

在GitHub上创建两个项目.一个项目应该只是Rails应用程序(即Rails应用程序目录中的所有内容).另一个项目应该是Rails应用程序目录之外的所有内容.

将Rails应用程序项目添加为"容器"项目中的git-submodule.

现在,您可以单独将Heroku作为远程添加到Rails应用程序存储库中,并将其推送到heroku.Heroku将接受推送,因为它只是一个带有预期目录和文件的Rails应用程序.


Nimrod Priel.. 6

Heroku情况的解决方案(不是README文件):

如果您正在使用新的Heroku Cedar(我相信当您第一次提出问题时它不可用),那么您的流程(如rails服务器流程)将使用Foreman启动.因此,您可以Procfile在根github目录中放置一个如下所示:

web:     my_rails_app/script/runserver.sh

然后my_rails_app/script/runserver.sh可能很简单

#!/bin/sh

cd my_rails_app
bundle exec rails server -p $PORT

在本地,您还应该创建一个名为.env(注意开头的.)的文件,其中包含

PORT=3000

该文件由foreman读取并用于设置环境变量,以便foreman start在您的机器上执行时设置端口(从根文件所在的根github目录中设置).Heroku服务器负责处理你的dyno上的.env文件.最大的优点是你可以在dyno上设置多个进程!



1> yfeldblum..:

这是一个简单的解决方案,可能适用于您,也可能不适合您.

在GitHub上创建两个项目.一个项目应该只是Rails应用程序(即Rails应用程序目录中的所有内容).另一个项目应该是Rails应用程序目录之外的所有内容.

将Rails应用程序项目添加为"容器"项目中的git-submodule.

现在,您可以单独将Heroku作为远程添加到Rails应用程序存储库中,并将其推送到heroku.Heroku将接受推送,因为它只是一个带有预期目录和文件的Rails应用程序.



2> Nimrod Priel..:

Heroku情况的解决方案(不是README文件):

如果您正在使用新的Heroku Cedar(我相信当您第一次提出问题时它不可用),那么您的流程(如rails服务器流程)将使用Foreman启动.因此,您可以Procfile在根github目录中放置一个如下所示:

web:     my_rails_app/script/runserver.sh

然后my_rails_app/script/runserver.sh可能很简单

#!/bin/sh

cd my_rails_app
bundle exec rails server -p $PORT

在本地,您还应该创建一个名为.env(注意开头的.)的文件,其中包含

PORT=3000

该文件由foreman读取并用于设置环境变量,以便foreman start在您的机器上执行时设置端口(从根文件所在的根github目录中设置).Heroku服务器负责处理你的dyno上的.env文件.最大的优点是你可以在dyno上设置多个进程!

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有