java-带臂的JRE版本(Docker)

我正在尝试着用Google的Jib projectJib Maven Plugin构建Docker映像.

我不明白如何指定JRE版本.

我知道我可以在plugin’s config中进行自定义,例如:

<configuration>
  <from>
    <image>gcr.io/distroless/java</image>
  </from>
</configuration>

但是,对于将要使用的实际JRE版本而言,这意味着什么?如果我要特别说一下JRE 8u172,该怎么办?

Jib项目将此功能描述为:

Reproducible – Rebuilding your container image with the same contents
always generates the same image.

因此,我假设必须有某种方法来锁定JRE版本?

级别:在Java和Maven上是高级的,在所有Docker上都是新手.

最佳答案
8u172的可用性取决于分发者是否已创建该版本的构建映像.

无法使用带有gcr.io/distroless/java的docker映像标签管理Java构建版本.
当前是gcr.io/distroless/java:8,如下所示是8u212.

https://console.cloud.google.com/gcr/images/distroless/GLOBAL/java?gcrImageListsize=30

~ $docker run -it --rm  --entrypoint java  gcr.io/distroless/java:8 -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b01-1~deb9u1-b01)
OpenJDK 64-Bit Server VM (build 25.212-b01,mixed mode)
~ $

如果要指定Java构建版本,建议使用AdroptOpenJDK.

例如

<configuration>
  <from>
    <image>adoptopenjdk/openjdk8:jdk8u172-b11</image>
  </from>
</configuration>

如果可以使用8u171,则可以选择openjdk.

<configuration>
  <from>
    <image>openjdk:8u171-jre</image>
  </from>
</configuration>

> https://hub.docker.com/r/adoptopenjdk/openjdk8/tags
> https://hub.docker.com/_/openjdk?tab=tags&page=4

相关文章

最近一直在开发Apworks框架的案例代码,同时也在一起修复Apw...
最近每天都在空闲时间努力编写Apworks框架的案例代码WeText。...
在《Kubernetes中分布式存储Rook-Ceph部署快速演练》文章中,...
最近在项目中有涉及到Kubernetes的分布式存储部分的内容,也...
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.ne...
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.ne...