【问题标题】:Rails deploying Gemfile.lock to development and production repositoriesRails 将 Gemfile.lock 部署到开发和生产存储库
【发布时间】:2014-04-24 01:11:22
【问题描述】:

我有一个用于开发的应用程序目录:d:/some/dir/myapp。我有一个名为 sample-repo 的存储库,但它有两个分支:developmaster

我的应用的 Gemfile 使用 sample-repo 存储库的特定于环境的分支:

RAILS_ENV = ENV['RAILS_ENV'] || 'development'
gem 'sample-repo',  git: "git@bitbucket.org:MyUserName/sample-repo.git", 
                branch: "#{ RAILS_ENV.to_sym == :production ? :master : :develop }"

我的虚拟主机有两个单独的目录;一个用于开发,另一个用于生产。每个都通过各自分支的 git pull 更新(开发 => 开发,生产 => 主)。

这是一个问题,因为当我在我的开发机器上运行 bundle update 时,Gemfile.lock 包含 sample-repo gem,指定了 develop 分支。然后我将 Gemfile.lock git push 到我的仓库(开发和主仓库),现在主仓库包含一个 Gemfile.lock 指定开发分支!

也就是说,问题在于developmaster 分支之间只有一个 Gemfile.lock 文件。

【问题讨论】:

    标签: ruby-on-rails capistrano bundler


    【解决方案1】:

    This answer 解决了我的问题。我创建了一个名为.rails-env 的文件,其中包含一个简单的字符串,用于指定捆绑程序应该使用的环境。此文件必须保留在存储库之外。如果不存在,则捆绑器默认为开发。

    问题的第二部分是我必须调整我的部署程序。我创建了一个在开发环境下运行bundle update 的小脚本,并在对生产执行相同操作之前等待按键。生成开发 Gemfile.lock 文件后,我将更改推送到我的 develop 存储库分支。完成生产后,我推送到master

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-21
      • 1970-01-01
      • 2015-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多