所以我有建筑管理应用程序,它在本地使用pdftk生成pdf表格(预先填写租户/费用数据)。在我的本地机器上像魔术一样工作。 但是,在Heroku上我收到错误:
未找到pdftk可执行文件/ usr / local / bin / pdftk
我尝试生成pdf文件时在日志中。我意识到我需要使用buildpack在我的heroku应用程序上安装pdftk。我尝试过使用Vulcan的一些教程,但是vulcan已被弃用,他们说使用heroku运行,但是我找不到很多关于如何使用heroku run安装pdftk-source:https://github.com/millie/pdftk-source的文档。
我要尝试https://github.com/millie/heroku-buildpack-ruby-pdftk,但是如果有一个更容易/更少杂乱的方式让我知道,谢谢!
编辑: 试过上面的方法,现在我的heroku日志说: RuntimeError(未找到pdftk可执行文件/ app / vendor / pdftk / bin) 所以我认为buildpack没有包含pdftk,这没有意义。 我一定做错了,但我完全按照说明操作,唯一不同的是我使用dropbox而不是S3来存储tar.gz文件(pdftk源代码)
编辑: 好的,我想出了如何在heroku buildpack中包含pdftk可执行文件并成功上传它作为应用程序环境的一部分。但是,出于一些非常奇怪的原因,在heroku bash控制台中,当我进入pdftk目录并尝试运行可执行文件时,heroku bash说没有找到pdftk可执行文件。
它适用于我的本地机器,当cd进入pdftk目录并运行pdftk时,它运行可执行文件,所以它不是可执行文件..那么为什么它不在heroku bash目录下工作?
解: 缺少在heroku上的配置变量中设置LD_LIBRARY_PATH,因为pdftk依赖于库文件。另外,记得将tar.gz tar到根目录并将PATH设置为/ bin / pdftk。只需在IRC上查看#heroku,这就是我得到答案的地方。
答案 0 :(得分:2)
在heroku上的配置变量中缺少设置LD_LIBRARY_PATH
,因为pdftk依赖于库文件。另外,请记住将tar.gz tar到根目录并将PATH设置为/bin/pdftk
。只需在IRC上查看#heroku,我就得到了答案。
答案 1 :(得分:1)
这就是我在heroku的nodejs app中设置pdftk的方法
创建heroku app
heroku create
为pdftk设置buildpack
BUILDPACK_URL=https://github.com/ddollar/heroku-buildpack-apt
为nodejs设置buildpack
heroku buildpacks:add --index 1 heroku/nodejs
将libgcj.so。*添加到您的搜索路径:
heroku config:set LD_LIBRARY_PATH=/app/bin
打开至少一个dyno
heroku ps:scale web=1
在项目的根目录中创建一个Procfile并定义以下内容:
web: node server.js
推送heroku中的更改
git push heroku master
答案 2 :(得分:0)
注意:感谢shake-apps创建了Buildpack https://elements.heroku.com/buildpacks/shake-apps/heroku-buildpack-pdftk
如果您需要在Heroku上为Node JS应用程序安装PDFtk,请按照以下说明进行操作:
您需要设置基本的nodejs
构建包,并通过pdftk
设置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