3

每次我推送或重新暂存我的应用程序时,我想自动从 Internet 下载我的 buildpack 的所有组件,以确保我拥有最新版本。

目前我看到缓存的 buildpack 组件正在被拾取

jboss buildpack :https://github.com/cloudfoundry-community/jboss-buildpack. 
-----> Downloaded app package (14M)
-----> Downloaded app buildpack cache (181M)
Cloning into '/tmp/buildpacks/jboss-buildpack'...
-----> Java Buildpack Version: b96641c | https://github.com/cloudfoundry-community/jboss-buildpack#b96641c
-----> Downloading Open Jdk JRE 1.8.0_45 from https://download.run.pivotal.io/openjdk/trusty/x86_64/openjdk-1.8.0_45.tar.gz (found in cache)
4

1 回答 1

4

我发现某些构建包是用代码编写的,以避免加载陈旧的组件来缓解这种担忧。

例如 :

Cloudfoundry Java buildpackhttps ://github.com/cloudfoundry/java-buildpack有一个内置机制来确保它始终使用它需要的最新版本的二进制文件。https://github.com/cloudfoundry/java-buildpack/blob/master/docs/extending-caches.md详细解释了这一点。

Cloudfoundry Node buildpackhttps ://github.com/cloudfoundry/nodejs-buildpack使用环境变量具有类似的功能。您可以创建一个 CF 环境变量:“NODE_MODULES_CACHE false”,这将强制 Node.js buildpack 每次都从 Internet 下载节点模块。

如果您不确定您使用的 buildpack 是否提供此机制,请执行以下步骤:

1) 分叉空构建包:https ://github.com/ryandotsmith/null-buildpack

2)添加:“ rm -rfv $2/* ”到null-buildpack/bin/compile文件并提交

3) 使用步骤 #2 中修改的 buildpack 推送您的应用程序,此步骤将完全删除缓存文件夹中的内容

4) 使用所需的构建包推送您的应用程序。

(参考:https ://github.com/perplexes/heroku-buildpack-clearcache )

于 2015-06-23T14:53:52.023 回答