【问题标题】:Setting env variable for buildpack on Heroku在 Heroku 上为 buildpack 设置环境变量
【发布时间】:2020-10-21 21:10:17
【问题描述】:

我正在尝试在 Heroku 上使用特定版本的 pdftotext(版本 3.03)。我正在使用https://github.com/carwow/heroku-buildpack-pdftotext buildpack,默认情况下使用版本 0.57(据我所知,它包括 Poppler 版本 0.57,但 pdftotext 版本也是 0.57)。通过查看https://github.com/carwow/heroku-buildpack-pdftotext/blob/master/scripts/build_pdftotext,我假设此构建包允许通过提供POPPLER_VERSIONPOPPLER_TARBALL_URL 变量来使用特定版本的Poppler。问题是 - 如何将这些变量传递给构建步骤?

到目前为止我已经尝试过:

  • Config Vars 中设置POPPLER_VERSIONPOPPLER_TARBALL_URL,正在部署
  • 每个https://devcenter.heroku.com/articles/buildpack-api,(我假设)在我的应用程序中创建env 文件夹,将ENV_DIR 设置为env,创建POPPLER_VERSIONPOPPLER_TARBALL_URL 文件,在env 文件夹中包含适当的值,部署

在任何一种情况下,运行/app/bin/pdftotext 0.57 版时仍会报告

【问题讨论】:

  • 您是否查看过elements.heroku.com/buildpacks/loadsmart/env-buildpack 以在构建时提供特定的配置/环境变量?
  • @jonrsharpe 我已经看过了,但考虑到存储库已存档,我还没有尝试过;好像和Buildpack API做的一样,如果可以的话,我想用官方的方式
  • buildpack API 是您在编写 buildpack 时所要实现的,例如 env buildpack。
  • @jonrsharpe 哦,我当时明显误解了这个 API 的用途。尽管我需要安装一个 buildpack 以在另一个 buildpack 中设置环境变量,但这对我来说似乎很奇怪。希望有一种 Heroku 强制的方式来做到这一点
  • 我认为配置变量 应该 可用于所有构建包,尽管我注意到(参见 github.com/textbook/starter-kit/issues/1)这似乎取决于它们的设置方式 -如果我在通过 CLI 创建应用程序后立即执行此操作,则它是可用的,但如果我从 app.json 为 Deploy to Heroku 按钮设置它,则不是。

标签: heroku


【解决方案1】:

如果有人遇到这个问题 - 答案是我很笨,我希望 Heroku 使用提供的 Makefile 构建二进制文件。但是 Heroku 为什么要构建它呢?

因此,我将 https://github.com/carwow/heroku-buildpack-pdftotext 分叉为 https://github.com/eithed/heroku-buildpack-pdftotext,更新了脚本以使用 cmake,构建它,切换 Heroku 以使用我的 buildpack - 版本 20.10.0 已正确安装。

【讨论】:

    猜你喜欢
    • 2021-07-30
    • 2021-12-23
    • 2014-04-03
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    相关资源
    最近更新 更多