我正在尝试使用the Buildpacks Pack tool作为命令行界面来构建我的解决方案,并使用"buildpacks:18“镜像来创建构建器。
除了Ruby之外,一切都很好,因为我的一个应用程序使用的是私有gem存储库。
通常,执行bundle config $address "$user:$token"(用实际值替换每个$),构建过程将在本地工作,而不需要Buildpacks。普通的Ruby的东西。
但是,当使用Buildpack Builder/Image时,它不会读取我本地计算机上的配置,并不断返回:
Bundler Output: Authentication is required for rubygems.pkg.github.com.
Please supply credentials for this source. You can do this by running:
bundle config set rubygems.pkg.github.com username:password
!
! Failed to install gems via Bundler.所以我猜它应该传递给Buildpack镜像。这是最佳实践吗?如果是的话..。多么?因为Buildpacks文档包含了大量的Heroku usage,但在使用打包工具时就不是那么多了,因为打包工具是一种抽象。
我已经想过并寻找过使用变量或映射本地文件的方法(这在抽象的CI/CD管道上就不太实用了),但我仍然无法得到一个明确的答案,并且在gemfile上硬编码证书是一个很大的禁忌(遵循best practices)。我试图避免做一个“自定义图像”,因为它感觉有点过头了,所以也许有一种方式我完全忽略了。
提前感谢您的帮助。
发布于 2021-01-17 03:52:55
您需要在BUNDLE_GEMS__<HOST>__<TLD>=<user>:<token>格式的环境变量中使用-e标志来运行pack build。例如:
pack build -e BUNDLE_GEMS__EXAMPLE__COM=itme:xxx myapp有关更多信息,请参阅Heroku guide to bundler configuration (在大多数情况下使用pack时仍然适用)
https://stackoverflow.com/questions/65753568
复制相似问题