如何避免在Bluemix上从缓存加载buildpack组件?

时间:2015-06-23 14:50:59

标签: ibm-cloud buildpack

每次推送或重新安排我的应用程序时,我都希望从互联网上自动下载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)

1 个答案:

答案 0 :(得分:4)

我发现某些buildpacks是用代码编写的,以避免加载过时的组件来缓解这种担忧。

例如:

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

Cloudfoundry Node buildpack https://github.com/cloudfoundry/nodejs-buildpack使用环境变量具有类似的功能。您可以创建CF环境变量:" NODE_MODULES_CACHE false" 这将强制Node.js buildpack每次都会从互联网上下载节点模块。

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

1)Fork null buildpack: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