我有一个私有gitlab主机,它托管私有代码和项目,我在heroku中托管我的应用程序,在那个heroku应用程序中,我们使用Gemfile来管理那个heroku app的依赖,其中一个依赖来自私有gitlab主机。所以我的Gemfile是这样的:
gem 'my_greate_gem', '0.0.1', :git => "http://myprivate_gitlab_host/private_gems/my_great_gem.git"
似乎没有任何关于使用私有gitlab主机在Heroku中托管gem的教程,但我真的不想使用gemfury。对此有什么可行的解决方案吗?
答案 0 :(得分:4)
如果不使用Gemfury,您必须在gem依赖关系的URL中传递用户名和密码
gem 'my_greate_gem', '0.0.1', :git => "http://<username>:<password>@myprivate_gitlab_host/private_gems/my_great_gem.git"
答案 1 :(得分:2)
另一个答案对我不起作用。另外,我更喜欢一种允许我将凭据保留在源外的方法。我将以下内容放入我的gemfile中:
gem 'mygem', git: "https://oauth2:#{ENV['GITLAB_TOKEN']}@gitlab.com/mygroup/mygem.git"
我创建的gitlab令牌具有API访问权限。如果我在设置中的环境变量中手动设置GITLAB_TOKEN
,则对heroku来说这是可行的。
希望有帮助。