【问题标题】:Deploying an app with engine using git and local versions使用 git 和本地版本部署带有引擎的应用程序
【发布时间】:2017-01-25 19:48:57
【问题描述】:

我正在尝试了解部署 Rails 引擎的工作流程。我读了this answer。但是我不完全理解 Gemfile、bundler、Capistrano 和 rails 之间发生了什么。

我有一种情况,我正在开发一个本地应用程序,推送到 git 存储库并使用 Capistrano 进行部署。在我的应用 Gemfile 中

#gem 'my_engine', git: "git@myrepo.com/myengine.git"
gem 'my_engine', path: '/local/path/to/MyEngine'

当我开发时,我经常注释掉 git 存储库并使用我的本地(我知道有些人可能会对此提出异议,但另一次question)我想知道的是:

  • 何时包含或安装引擎?
  • 如果我正在使用本地引擎并决定部署应用程序,此时是否包含本地引擎?
    • 将使用本地当前分支/状态吗?
  • 如果我决定在什么时候切换到生产(和/或开发)存储库?
  • Capistrano 是否在部署期间运行捆绑安装?
    • Capistrano 可以使用我的本地副本还是需要我使用 git 存储库?

【问题讨论】:

    标签: ruby-on-rails deployment capistrano rails-engines


    【解决方案1】:

    引擎和主机应用程序在同一个存储库中然后指定

    gem 'my_engine', path: '/local/path/to/MyEngine'
    

    会起作用的。

    如果您有不同的引擎和应用程序存储库,则需要将 gem 指定为

    gem 'my_engine', git: 'git@github.com:my_engine.git',
                           branch: 'master', revision: 'cb1a8d2495168d411676f58bdfc9015fe728948c'
    

    branchrevision 是可选的,但如果您想将其指向特定的提交或分支,建议使用它。

    确保deploy(用于部署应用程序的服务器上的用户)用户有权访问引擎存储库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-02
      • 2020-07-14
      • 2013-04-05
      • 1970-01-01
      • 1970-01-01
      • 2015-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多