带有 jib 的 JRE 版本 (Docker)
JRE version with jib (Docker)
我正在尝试用 Google 的 Jib project and Jib 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。
您可能想使用预装了 java 的基本映像。每个 docker 图像都包含标签,类似于版本。如果您没有像上面那样指定标签,则会采用最新的标签,这可能会导致 java 版本发生意外更改。
例如,您可以使用 opendjk
图像和 java 版本 8u212
,方法是使用 openjdk:8u212-jre-stretch
。在 OpenJDK Docker Hub 中,您可以看到所有可用标签的列表
8u172 的可用性取决于发行商是否创建了该版本的构建映像。
java 构建版本未使用 docker 图像标签和 gcr.io/distroless/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就可以selectopenjdk.
<configuration>
<from>
<image>openjdk:8u171-jre</image>
</from>
</configuration>
我正在尝试用 Google 的 Jib project and Jib 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。
您可能想使用预装了 java 的基本映像。每个 docker 图像都包含标签,类似于版本。如果您没有像上面那样指定标签,则会采用最新的标签,这可能会导致 java 版本发生意外更改。
例如,您可以使用 opendjk
图像和 java 版本 8u212
,方法是使用 openjdk:8u212-jre-stretch
。在 OpenJDK Docker Hub 中,您可以看到所有可用标签的列表
8u172 的可用性取决于发行商是否创建了该版本的构建映像。
java 构建版本未使用 docker 图像标签和 gcr.io/distroless/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就可以selectopenjdk.
<configuration>
<from>
<image>openjdk:8u171-jre</image>
</from>
</configuration>