【问题标题】:deploying to a test server before production on heroku在 Heroku 上生产之前部署到测试服务器
【发布时间】:2012-09-27 05:47:58
【问题描述】:

由于我是新手,我不确定这是否应该是这样 -

我正在制作一个 web 应用程序并使用 heroku 进行托管

我想让几个开发人员在 github 上处理相同的代码。

我想在 heroku 上拥有 2 台服务器 - 一台用于生产,一台用于测试(它也称为 staging 吗?)

问题是我知道通过从 webapp 文件夹中执行 git push heroku master 会做什么,它将把它发送到应用程序到首先设置的 heroku 服务器。

  1. 如何使用 git 从同一个文件夹部署到 2 个不同的 heroku 实例?有可能/推荐吗?

  2. 当我推送到 github 时通常是 master,我应该有另一个分支进行测试吗?

  3. 有没有办法在 heroku 实例之间传输应用程序?

如果有推荐的 Heroku 和 github 部署例程的地方,我很乐意阅读它

【问题讨论】:

    标签: ruby-on-rails-3 deployment heroku github production-environment


    【解决方案1】:

    当您运行git push heroku master 'heroku' 时,会识别您要推送到的远程存储库。在您的情况下,“heroku”似乎是对您的生产服务器的引用。同样,您可能有一个指向 github 的“原点”遥控器。

    如果您列出您的 git 遥控器,您可能会看到如下内容:

    > git remote -v 
    heroku  git@heroku.com:heroku_app_name.git (fetch)
    heroku  git@heroku.com:heroku_app_name.git (push)
    origin  git@github.com:your_github_org/repo_name.git (fetch)
    origin  git@github.com:your_github_org/repo_name.git (push)
    

    要推送到不同的 Heroku 应用,您只需将该应用添加为新的 git 远程。

    git remote add heroku-staging git@heroku.com:heroku_staging_app.git
    

    现在您应该可以根据需要推送到任一远程了。

    git push origin master //push to github
    git push heroku-staging //deploy to staging
    git push heroku master //deploy to production
    

    一般来说,我建议您不要手动推送到 heroku。希望您可以有一个持续集成服务器监视 github,在您推送更改时运行测试,并仅在您的自动化测试通过时部署到暂存。然后,您可以手动触发 CI 任务,该任务也将当前正在暂存的任何提交推送到生产环境(甚至也可以自动化生产部署)。

    您可以使用heroku 命令行执行相同的配置。这也为您提供了一种管理两个 heroku 应用程序的环境变量和其他设置的好方法: https://devcenter.heroku.com/articles/multiple-environments

    【讨论】:

    • 谢谢您,尽管您的回答对您来说似乎微不足道,但它对我帮助很大,并将我推向了正确的方向(我说我是新手)。我对此表示感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    • 2018-06-13
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 2020-04-18
    • 1970-01-01
    相关资源
    最近更新 更多