【问题标题】:Buildpacks Pack: Passing Bundler Config to the BuildpackBuildpacks Pack:将 Bundler 配置传递给 Buildpack
【发布时间】:2021-01-16 19:06:53
【问题描述】:

我正在尝试使用 the Buildpacks Pack tool 作为 CLI 构建我的解决方案,并使用“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 很重,但在使用 Pack 工具时没有那么多,这是一种抽象。

我已经考虑并搜索了使用变量或映射我的本地文件的方法(这在抽象的 CI/CD 管道上不太实用),但我仍然无法得到关于这和硬编码 gemfile 上的凭据是一个很大的禁忌(在best practices 之后)。我试图避免使用“自定义图像”,因为这感觉有点矫枉过正,所以也许有一种方法我完全错过了。

提前感谢您的帮助。

【问题讨论】:

    标签: ruby rubygems bundler credentials buildpack


    【解决方案1】:

    您需要使用-e 标志以BUNDLE_GEMS__<HOST>__<TLD>=<user>:<token> 形式运行pack build。例如:

    pack build -e BUNDLE_GEMS__EXAMPLE__COM=itme:xxx myapp
    

    有关更多信息,请参阅Heroku guide to bundler configuration(在大多数情况下使用pack 时仍然适用)

    【讨论】:

    • 感谢您的来信。实际上,它可以在构建命令时作为 ENVVARS 传递。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-23
    • 2014-05-07
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多