【发布时间】:2018-09-18 09:08:54
【问题描述】:
我想在我的 rails 应用程序中加载一个私有 gem(我正在使用 docker 和 rails 5)。
首先我将 gem 添加到我的 gemfile 中:
gem 'my_gem', '0.1.4', git: "https://#{ENV['GITHUB_TOKEN']}@github.com/Orga/my_gem"
然后当我尝试docker-compose build,这就是我得到的:
致命:无法读取“https://github.com”的用户名:没有这样的设备或地址
所以我尝试了docker-compose run web bundle install。他们要求我登录。我没有错误,但 gemfile 更新如下:
GIT
remote: https://@github.com/Orga/my_gem
revision: 391ae38ff06dfd360eb42a09256f4a5463fba559
specs:
my_gem (0.1.4)
rails (>= 5.0.0.beta3, < 5.1)
roo (~> 2.1.0)
GEM
remote: https://rubygems.org/
...
- 我觉得这条线很奇怪:
remote: https://@github.com/Orga/my_gem。 那么这是加载私有 gem 的好方法吗? - 当我
bundle install时,它要求我登录,所以它可能会在生产中造成麻烦吗?
编辑
当我将令牌直接放入 gemfile 时,一切正常。 所以 env var 没有被正确调用。
我试过了:
.env
GITHUB_TOKEN=...
宝石文件
gem 'my_gem', '0.1.4', git: "https://#{ENV['GITHUB_TOKEN']}@github.com/Orga/my_gem"
也试过了
secrets.yml
development:
github_token: ...
宝石文件
gem 'my_gem', '0.1.4', git: "https://#{Rails.application.secrets.github_token}@github.com/Orga/my_gem"
【问题讨论】:
-
remote: https://@github.com/Orga/my_gem--- 看来您没有正确设置ENV['GITHUB_TOKEN']。你是怎么设置的? -
是的,我意识到环境变量设置不正确。因为当我直接将令牌放入 gemfile 中时,一切正常。我是这样设置的:我有一个
.env' file withGITHUB_TOKEN=...`。我还尝试将我的 env var 放入 secrets.yml 并使用Rails.application.secrets.github_token调用它,但它也不起作用。那么如何让这个 env var 可以从 gemfile 中访问呢?
标签: ruby-on-rails ruby docker