java - 带有 jib 的 JRE 版本 (Docker)

标签 java docker jib

我正在尝试使用 Google 的 Jib project 构建 Docker 镜像。和 Jib Maven Plugin .

我不明白如何指定 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 的可用性取决于发行商是否创建了该版本的构建镜像。

java 构建版本不使用带有 gcr.io/distroless/java 的 docker 镜像标签管理。
当前 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>

关于java - 带有 jib 的 JRE 版本 (Docker),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55991625/

相关文章:

OSX 10.9 上的 Java 速度变慢

linux - Docker 克隆 - 权限被拒绝

spring-boot - 使用JIB插件对Spring Boot应用程序进行Docker化

spring-boot - 如何使用 jib-maven-plugin 构建 docker 镜像,但默认不推送?

maven - jib-maven spring boot 配置文件

java - JAVA 中的 cURL 等效项

java - 这段java代码中的 "call"是什么意思

java - 将 jena 模型转换为 jena tdb

docker - kubernetes 不健康的入口后端

Docker 映射端口并暴露给特定主机