我如何部署我的应用可以访问的“私人”宝石,但没有其他人可以获得?

时间:2010-11-22 16:02:55

标签: ruby-on-rails ruby deployment heroku rubygems

我有几个应用程序,我想分享一些常见的代码。我想创建代码并在应用程序中共享/版本,但我不想将其发布到公共gem服务器。

有哪些选择?

5 个答案:

答案 0 :(得分:10)

这看起来很有希望:

https://github.com/cwninja/geminabox/

虽然我自己没有使用它,但我无法保证。但是,我最近在官方的Rubygems Q& A网站上阅读了一个帖子,其中提到内置的rubygems托管不是推荐的解决方案,Geminabox是一个很好的选择。

请注意,它没有任何身份验证或安全性(显然除非通过默默无闻),因此根据这些宝石的敏感程度,您可能希望自己添加一些内容(甚至只是按IP地址列入白名单)。

答案 1 :(得分:10)

我认为

GemFury就是你所追求的。

答案 2 :(得分:8)

执行此操作的方法是将gem解压缩到vendor / gems目录中。然后,您可以正常使用Gemfile告诉Bundler在哪里找到它。

首先将gem解压缩到vendor / gem。我假设您已经下载了宝石并坐在您面前的开放目录中。

gem unpack your_gem.gem --target /path_to_rails_app/vendor/gems/.

现在使用如下所示的行更新您的Gemfile:

gem 'your_gem', :path => "#{File.expand_path(__FILE__)}/../vendor/gems/your_gem"

最后,使用Bundler安装它并更新你的Gemfile.lock

bundle install

您现在已在Rails应用程序中安装了本地gem副本。

您现在可以通过维护符号链接,Git子模块或子树以您喜欢的方式在您的应用之间共享gem。

答案 3 :(得分:5)

我的建议是使用bundler,私有git repo和git + ssh依赖。唯一的问题是你需要找到一种管理ssh密钥的方法,因为目前我不相信bundler支持缓存ssh密钥。您可以使用https://username:password@myrepo ....样式语法,但我还没有尝试过。

不要忘记,您始终可以选择使用bundle package打包宝石进行部署。

我希望这有帮助!

答案 4 :(得分:1)

github还提供一些私人存储库,只需支付少量费用。