我有一个spring-boot gradle REST应用程序,希望用https://buildpacks.io/ pack创建一个与OCI一致的映像。
pack -v build minimal_rest --builder cloudfoundry/cnb:bionic在任何执行过程中,它都会重新下载jdk作为“对层的贡献”。
===> BUILDING
[builder]
[builder] Cloud Foundry OpenJDK Buildpack v1.2.14
[builder] OpenJDK JDK 11.0.6: Contributing to layer
[builder] Downloading from https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%!B(MISSING)10/OpenJDK11U-jdk_x64_linux_hotspot_11.0.6_10.tar.gz有没有一种方法来“缓存”贡献层,这样它们就不会在每次运行时被重新下载?
+:
我在org.springframework.boot插件中使用了spring 2.3.0.M3和gradle 6.2.1 (也是v2.3.0.M3)。
打电话
./gradlew clean build -x test bootBuildImage使用
tasks {
bootJar {
val archivesBaseName: String by project.extra
archiveBaseName.set(archivesBaseName)
manifest {
attributes["Implementation-Title"] = project.name
attributes["Implementation-Version"] = v.version
attributes["provider"] = "gradle"
}
}
bootBuildImage {
builder = "cloudfoundry/cnb:bionic"
val archivesBaseName: String by project.extra
imageName = archivesBaseName
}
}我终于得到了:
Execution failed for task ':bootBuildImage'.
> Detected platform API version 'v0.3' is not included in supported versions 'v0.1,v0.2'但是使用cloudfoundry/cnb:只有2天的仿生(2020年3月20日)
对此也有什么想法吗?
发布于 2020-03-24 07:51:00
因此,我得到了他们松懈的渠道的答案(至少在第一部分)。
在和--clear-cache进行了一次无过失的跑步之后.pack现在缓存jdk,并且不会在每次运行时下载jdk。(在连续运行时肯定不会传递--清除缓存)
此外,在您的项目根dir中,您可以问pack本身它“推荐”了哪些构建者:
$ pack suggest-builders
Suggested builders:
Cloud Foundry: cloudfoundry/cnb:bionic Ubuntu bionic base image with buildpacks for Java, NodeJS and Golang
Cloud Foundry: cloudfoundry/cnb:cflinuxfs3 cflinuxfs3 base image with buildpacks for Java, .NET, NodeJS, Python, Golang, PHP, HTTPD and NGINX
Cloud Foundry: cloudfoundry/cnb:tiny Tiny base image (bionic build image, distroless run image) with buildpacks for Golang
Heroku: heroku/buildpacks:18 heroku-18 base image with buildpacks for Ruby, Java, Node.js, Python, Golang, & PHP
Tip: Learn more about a specific builder with:
pack inspect-builder [builder image]https://stackoverflow.com/questions/60804676
复制相似问题