具有身份validation的私有Ruby Gem服务器
我想安装一个带有一些身份validation的私有Ruby gem服务器。 我希望能够使用公共Ubuntu服务器托管内部gem。
我读到了http://docs.rubygems.org/read/chapter/18 。 但是没有认证那个 – 我可以看到。
然后我读了一下https://github.com/cwninja/geminabox 。 但是,当我使用基本身份validation(他们在他们的Wiki中)时,它抱怨从我的服务器获取源。
所以。 如何使用身份validation创建私有Ruby gem服务器? 这不可能吗?
谢谢。
编辑:
Geminabox问题。 我尝试“捆绑”以安装新的gem……但它给了我这个错误:
AGs-MacBook-Pro:super_app AG $捆绑
获取http:// rubygems.org/的源索引
获取http:// localhost:9292 /的源索引
无法访问rubygems存储库http:// rubygems.org/,http:// localhost:9292 /
在任何来源中都找不到aglipsum-0.0.1
而“aglipsum”是我的定制gem。 但是,当我没有基本身份validation时,它可以工作。
一些专业的二进制存储库管理器(如Artifactory )支持私有RubyGems存储库。
您是否尝试使用基本身份validation凭据为源URL添加前缀:
gem sources -a http://user:password@localhost:9292
这对我来说适用于apache + passanger设置。
Bundler 1.6版通过bundle config添加了对HTTP auth的支持。
看看我的geminabox叉是你需要的。 我添加了管理gem的身份validation。
部署私有rubygems存储库
您可以从geminabox docker image轻松设置私有rubygems存储库:
docker run -d -v /path_where_to_store_gems:/webapps/geminabox/data --name geminabox -p 9292:9292 -P -h geminabox -e PRIVATE=true -e USERNAME=myuser -e PASSWORD=mypassword spoonest/geminabox:latest
不要忘记改变:
-
/path_where_to_store_gems
– 您要在其中存储gem的本地计算机上的路径 -
myuser
– 用户名 -
mypassword
– 密码
就这样。 您的存储库可通过URL http:// YOUR_HOST:9292访问
安装gems形成私有存储库
在Gemfile
的顶部添加以下行:
source 'http://myuser:mypassword@YOUR_HOST:9292'
…像往常一样使用bundle install
。