我正在尝试着用Google的Jib project和Jib Maven Plugin构建Docker映像。
我不知道如何指定JRE版本。
我知道我可以在plugin's config中进行自定义,例如:
>>> import pyexcel
>>> reader = pyexcel.Reader("example.csv""")
>>> print reader[1][1]
5
但是对于将要使用的实际JRE版本而言,这意味着什么?如果我要特别说一下JRE 8u172,怎么办?
Jib项目将其声明为一项功能:
可复制-使用相同的内容重建容器图像 总是生成相同的图像。
因此,我假设必须有某种方法来锁定JRE版本?
级别:在Java和Maven上是高级的,在所有Docker上都是新手。
答案 0 :(得分:1)
您可能要使用预安装了Java的基本映像。每个docker映像都包含标签,与版本类似。如果您没有像上面那样指定标记,则会采用最新的标记,这可能会导致Java版本的意外更改。
例如,您可以使用opendjk
将8u212
图像与Java版本openjdk:8u212-jre-stretch
一起使用。在OpenJDK Docker Hub中,您可以看到所有可用标签的列表
答案 1 :(得分:1)
是否提供8u172取决于发行商是否已创建该版本的构建映像。
java构建版本无法通过带有gcr.io/distroless/java
的docker image标签进行管理。
当前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>