问题标签 [buildpack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
71 浏览

heroku - 如何从自定义 Heroku buildpack 中检索当前构建的版本?

我有一个由我们的 CI 服务器存储在 s3 上的 git 修订索引的构建目录。我不想在部署时执行构建,我只想下载一个预构建的应用程序,解压它然后去。

我正在尝试使用自定义构建包来完成此任务,但为了做到这一点,我需要找出正在编译的代码版本。可悲的是(对我而言),我在环境中的任何地方都找不到此信息。

似乎这是应该以某种方式发现的东西,但我完全不知道在哪里。

0 投票
1 回答
575 浏览

python - 在自定义 Heroku Python buildpack 中,如何设置配置变量?

我正在尝试为我的 Python 应用程序设置一个自定义配置变量以供使用。具体来说,当前 SHA 用作静态文件中的 URL 参数,以强制 CDN 在每次部署时重新启动。我正在尝试使用基于普通 Heroku Python 的自定义构建包来完成此操作(https://github.com/heroku/heroku-buildpack-python)。

我现在在哪里,我已经开始修改compile脚本了。到目前为止,我已经能够获得我需要的值,但是在 GIT_DIR 未设置之前,在顶部附近运行,在第 30 行附近

export GIT_SHA=$(git log -1 --format="%h")

然后,在第 175 行左右,我认为它是为应用程序设置配置变量的地方。我尝试添加自己的:

set-env GIT_SHA '$GIT_SHA'

无济于事

我已经运行heroku labs:enable user-env-compile了我认为是必要的步骤,但我无法终生弄清楚如何让 buildpack 实际设置我的应用程序使用的配置变量。

编辑 能够通过安德鲁的建议解决这个问题。我创建了一个自定义构建包,它调用一个 Python 脚本,该脚本使用 Heroku python 绑定来设置 var,从构建包中设置的环境变量中读取它。

0 投票
2 回答
1811 浏览

heroku - 如何调试自定义 Heroku buildpack:未驱动发布脚本

我正在开发一个 Eclipse Virgo buildpack,但是当我使用 Heroku 尝试它并推送一个琐碎的应用程序时,检测失败:

buildpack 的检测脚本在应用程序的根目录中本地运行良好:

关于如何调试的任何提示?我尝试让检测脚本写入标准输出和标准错误,但输出没有出现在“heroku 日志”下。

我正在运行 Mac OS X 10.8.2、Ruby 1.9.3p374 和 gems 1.8.23。

更新:在前两个答案之后,我在驱动 detect.rb 脚本之前使用了 bash 检测脚本来安装丢失的 gem。我还更改了 buildpack 脚本以写入标准输出。

heroku push 更进一步,但仍然失败。我可以看到编译脚本正在退出,但是发布 bash 脚本在开始时有一个 echo 命令,并且这不会出现在输出中。

所以似乎没有调用发布脚本。

输出如下(# 表示注释以避免混乱):

heroku logs --tail 简单地显示:

0 投票
3 回答
398 浏览

php - heroku buildpack that supports the php imap

I am trying to locate or build a heroku buildpack that supports the php imap functions such as imap_open() Do I really need to recompile php and then store the binary on amazon?

The current buildpack I am using is https://github.com/Americastestkitchen/heroku-wordpress-php.git

0 投票
1 回答
947 浏览

heroku - 在 Heroku 上设置 PostgreSQL application_name

application_name是一个 PostgreSQL 特定的连接参数,每个客户端在连接时可以(并且应该)设置它。它稍后会帮助 DBA 和操作人员将行为不端的查询与特定的应用程序代码相关联。

这个 SO question 解释了如何application_name使用 SQLAlchemy进行设置,但不幸的是,它在 Heroku 上不起作用,因为设置application_name是在 PostgreSQL8.5分支上添加的(仅发布为),而安装在 Heroku 测功机上9.0的 PostgreSQL 客户端库( )版本是libpq从 PostgreSQL 8.4.9 构建。

如果有的话,可以做些什么来设置application_nameHeroku?

0 投票
1 回答
1173 浏览

ruby-on-rails - 使用 Taglib-Ruby 为 Web 应用程序构建自定义 Heroku Ruby/Rails Buildpack

我使用 Rails 3.2 构建了一个使用 taglib-ruby gem 的应用程序。

我需要将此应用程序上传到 Heroku,但它无法成功构建 taglib-ruby gem,因为需要在机器上安装相关的 C++ taglib 库。

这导致我使用 Vulcan 构建自定义 buildpack 来安装我的应用程序。

按照https://github.com/heroku/vulcan/issues/32上的建议,我能够使用 Vulcan 成功安装 cmake 和 taglib。vulcan 下载到我在https://github.com/JllyGrnGiant/vulcan-buildpack托管的计算机上的生成文件

如果我进入我的应用程序目录并运行

然后尝试推送我的应用程序,构建器成功找到了 buildpack 但不知道如何继续安装我的应用程序

我相信这是因为我需要分叉默认的 ruby​​ buildpack。

现在我们解决了我的问题。在部署方面我不是很了解,所以我不知道在哪里包含我的 taglib 文件,也不知道要更改哪些其他文件,所以推送我的应用程序会找到那些 taglib 库来构建 taglib-ruby gem。Heroku 网站上帮助的打包二进制文件部分对我来说没有多大意义,更不用说在我没有二进制文件但有很多头文件和库的问题的上下文中。

其他问过关于 taglib-ruby 和 Heroku 的问题的人还没有安装 cmake,这对我来说完成得很好,我也找不到解释如何在 Ruby/Rails 的自定义 buildpack 中包含库的资源应用程序。

任何帮助将不胜感激。感谢您的时间。

0 投票
3 回答
2327 浏览

r - 带有 buildpacks 的 heroku 如何处理 PATH?

我将heroku-buildpack-r和 heroku-buildpack-ruby 与 heroku-buildpack-multi 配合使用。一切都正确安装,R 在本地工作。

根据this heroku post,YAML在bin/release中为buildpacks设置了环境:

这段代码似乎运行:

但是,在推送完成后,路径未设置为此:

我可以手动设置 PATHheroku config:set似乎是唯一的解决方案。

为什么 buildpack 没有按照宣传的方式设置路径?

0 投票
2 回答
1761 浏览

heroku - 如何在 Heroku Buildpack 中解压文件

我正在为FantomHeroku buildpack编写一个自定义(heroku-buildpack-fantom),并且作为脚本的一部分,我已经下载了一个文件(来自语言供应商),但是如何解压缩它?compile.zip

unzip不是公认的命令。

gunzip存在,但我不能用它来解压缩 .zip 文件。

我错过了什么?

0 投票
3 回答
654 浏览

heroku - Heroku NodeJS + CouchBase 自定义构建包

我正在尝试将自定义构建包与 NodeJS 和 CouchBase 模块/库放在一起

我已经使用 Vulcan 构建 libcouchbase 和 libvbucket 并让 buildpack 检索和解压缩两者的 tgz 文件。

那里一切看起来都很好,但是当 npm 尝试安装 couchbase 模块时我收到错误:

我得到了一堆错误,但是这一行:

“../src/couchbase_impl.h:52:36:警告:libcouchbase/couchbase.h:没有这样的文件或目录”

让我认为它找不到 libcouchbase 库(这是可能的,因为它们不在通常的位置)。

我尝试在 Config Vars 中使用 CPPFLAGS="-I/app/vendor/couchbase/include/libcouchbase" 添加正确的路径,并将其作为编译阶段的一部分导出,但仍然没有运气。

这是 Heroku 部署输出和编译/发布 buildpack 文件的要点: https ://gist.github.com/ahamidi/5620503

任何帮助将不胜感激。

谢谢,

阿里

[更新 1]

我已经取得了一些进展,现在我可以在部署到 Heroku 时编译 slug。

关键是找出 CouchNode 在添加要包含的自定义目录时查找的 ENV 变量。

在这种情况下,Env 变量是 EXTRA_CPPFLAGS 和 EXTRA_LDFLAGS。

所以我更新了编译文件以包含以下内容:

slug 编译并部署了应用程序,但我现在在日志中得到一个不同的错误:

所以看起来 Node 看不到 libcouchbase 库目录。

0 投票
2 回答
118 浏览

node.js - 为什么在 heroku 上使用 buildpack?

我遇到了越来越多的对 heroku 应用程序构建包的引用。其他则需要一个heroku不支持的buildpack,为什么在应用程序创建中定义这个参数?我已经看到使用缓存来提高 NPM 速度的参考。一些上下文会有所帮助。