3

所以我有建筑管理应用程序,它在本地使用 pdftk 生成 pdf 表格(预填充租户/费用数据)。在我的本地机器上像魔术一样工作。但是,在 Heroku 上出现错误:

pdftk 可执行文件 /usr/local/bin/pdftk 未找到

当我尝试生成 pdf 文件时在日志中。我意识到我需要使用 buildpack 在我的 heroku 应用程序上安装 pdftk。我尝试过使用 Vulcan 进行一些教程,但不推荐使用 vulcan,他们说使用 heroku run,但是我找不到太多关于如何安装 pdftk-source 的文档:https ://github.com/millie/pdftk-源码使用heroku运行。

我将尝试https://github.com/millie/heroku-buildpack-ruby-pdftk,但如果有更简单/不那么混乱的方法,请告诉我,谢谢!

编辑:尝试了上述方法,现在我的heroku日志说: RuntimeError (pdftk executable /app/vendor/pdftk/bin not found) 所以我认为buildpack一开始就没有包含pdftk,这不会感觉。我一定是做错了什么,但我完全按照说明进行操作,唯一的区别是我使用 dropbox 而不是 S3 来存储 tar.gz 文件(pdftk 源)

编辑:好的,我想出了如何在 heroku buildpack 中包含 pdftk 可执行文件并将其作为应用程序环境的一部分成功上传。但是,由于一些非常奇怪的原因,在 heroku bash 控制台中,当我 cd 进入 pdftk 目录并尝试运行可执行文件时,heroku bash 说找不到 pdftk 可执行文件。

它在我的本地机器上工作,当 cd 进入 pdftk 目录并运行 pdftk 时,它运行可执行文件,所以它不是可执行文件..那么为什么它不在 heroku bash 目录中工作?

解决方案:在 heroku 上的配置变量中缺少设置 LD_LIBRARY_PATH,因为 pdftk 依赖于库文件。另外,请记住将 tar.gz tar 到根目录并将 PATH 设置为 /bin/pdftk。只需查看 IRC 上的#heroku,我就得到了答案。

4

3 回答 3

2

在 heroku 上我的配置变量中缺少设置LD_LIBRARY_PATH,因为 pdftk 依赖于库文件。另外,请记住将 tar.gz tar 到根目录并将 PATH 设置为/bin/pdftk. 只需查看 IRC 上的#heroku,我就得到了答案。

于 2014-06-25T21:18:44.523 回答
1

这就是我在heroku的nodejs应用程序中设置pdftk的方式

  1. 创建heroku应用

    heroku create
    
  2. 为 pdftk 设置 buildpack

    BUILDPACK_URL=https://github.com/ddollar/heroku-buildpack-apt
    
  3. 为 nodejs 设置 buildpack

    heroku buildpacks:add --index 1 heroku/nodejs
    
  4. 将 libgcj.so.* 添加到您的搜索路径:

    heroku config:set LD_LIBRARY_PATH=/app/bin
    
  5. 打开至少一个测功机

    heroku ps:scale web=1
    
  6. 在项目的根目录中创建一个 Procfile 并定义以下内容:

    web: node server.js
    
  7. 在heroku中推送更改

    git push heroku master
    
于 2016-10-18T08:20:41.660 回答
0

添加截至 2019 年 7 月有效的答案

注意:感谢Shake -apps创建 Buildpack https://elements.heroku.com/buildpacks/shake-apps/heroku-buildpack-pdftk

如果您需要在 Heroku 上为 Node JS 应用程序安装 PDFtk,请按照以下说明操作:

Heroku 安装

您需要设置基本nodejsbuildpack,并将pdftkbuildpack 设置为shake-apps.

通过运行以下命令来设置它们:

heroku buildpacks:set heroku/nodejs;
heroku buildpacks:add --index 1 https://github.com/shake-apps/heroku-buildpack-pdftk.git;

构建包设置后,服务器可以正常部署

git push heroku master

如果您对部署有任何问题,则可能是您以前的 buildpack。您可以清除它以重新开始:

heroku buildpacks:clear
于 2019-07-23T21:01:37.317 回答