【发布时间】:2023-03-20 00:34:02
【问题描述】:
我在 Gemfile 中使用环境变量时遇到问题。
我正在尝试使用 API 密钥从私有 Github 存储库加载 gem:
auth = ENV['SECRET_GIT']
gem 'foobar', git: "https://#{auth}:x-oauth-basic@github.com/Foo/Bar.git"
但如果我 puts 我的 ENV['SECRET_GIT'] 变量,它里面什么都没有。
我认为您可以这样做是因为这些(尤其是第一个):
- https://devcenter.heroku.com/articles/bundler-configuration#gem-source-username-and-password
- https://stackoverflow.com/a/7338154/5353193
- Deploying to Heroku with environment variables in Gemfile
Bundler 版本 1.14.6
ruby 2.4.0p0
谢谢你的帮助
编辑
我正在尝试在本地环境中执行此操作,我想在 heroku 上执行此操作不会有问题。
【问题讨论】:
-
我认为问题在于将
auth作为变量?在您提供的链接中,没有人以这种方式使用它,他们写在同一行中,如gem 'foobar', git: "https://#{ ENV['SECRET_GIT'] }:x-oauth-basic@github.com/Foo/Bar.git"。 -
我也试过这种方法,但它也不起作用。
-
好的。只是我的好奇心,我们可以在 Gemfile 中有变量吗?我找不到关于那个的参考。你能提供一些链接吗?
-
如果你在
gemfile中使用foo = 'bar',那么puts foo #=> 'bar'就可以了;) -
您是否事先做了
export SECRET_GIT="xxxxx",否则您如何在外壳中指定该环境变量?如果您已经这样做了,并且您正在使用带有 spring 的 rails,请尝试先停止 spring 服务器。
标签: ruby-on-rails heroku bundler gemfile