Kev*_*ell 21 ruby deployment rubygems ruby-on-rails heroku
我有几个应用程序,我想分享一些常见的代码.虽然我不想将代码发布到公共gem服务器上,但我想在代码中创建代码并在应用程序中共享/版本.
有哪些选择?
Ril*_*ton 10
这似乎很有希望:
https://github.com/cwninja/geminabox/
虽然我自己没有使用它,所以我不能保证它.但是,我最近在官方的Rubygems Q&A网站上阅读了一个帖子,其中提到内置rubygems托管不是推荐的解决方案,Geminabox是一个很好的选择.
请注意,它没有任何身份验证或安全性(显然除非通过默默无闻),因此根据这些宝石的敏感程度,您可能希望自己添加一些内容(甚至只是按IP地址列入白名单).
这样做的方法是将gem解压缩到vendor/gems目录中.然后告诉Bundler在正常情况下使用Gemfile在哪里找到它.
首先将gem解压缩到vendor/gem.我假设您已经下载了宝石并坐在您面前的开放目录中.
gem unpack your_gem.gem --target /path_to_rails_app/vendor/gems/.
Run Code Online (Sandbox Code Playgroud)
现在用这样的行更新你的Gemfile:
gem 'your_gem', :path => "#{File.expand_path(__FILE__)}/../vendor/gems/your_gem"
Run Code Online (Sandbox Code Playgroud)
最后,使用Bundler安装它并更新您的Gemfile.lock
bundle install
Run Code Online (Sandbox Code Playgroud)
您现在已在Rails应用程序中安装了gem的本地副本.
您现在可以通过维护符号链接,Git子模块或子树以您喜欢的方式在您的应用程序之间共享gem.
我的建议是使用bundler,私有git repo和git + ssh依赖.唯一的问题是你需要找到一种管理ssh密钥的方法,因为目前我不相信bundler支持缓存ssh密钥.您可以使用https:// username:password @ myrepo .... style语法,但我还没有尝试过.
不要忘记,您始终可以选择使用bundle package
包装宝石进行部署.
我希望这有帮助!
归档时间: |
|
查看次数: |
6772 次 |
最近记录: |