如何更改docker镜像或容器中的java版本?

Rak*_*h M 2 java jenkins openshift docker kubernetes

在我的 Spring Boot 微服务项目中,其中一个微服务升级到了 java 11,它导致我现有的功能出现一些问题。我想将该微服务中的 java 版本从 11 更改为 8。但我无法做到这一点,因为它是通过 jenkins 自动创建为 docker 映像的。

在 Gradle 文件中,我提到 java 版本为 1.8,但在 kubernetes 集群中仍然以某种方式仅针对此特定服务 java 升级到 11。

在服务器中使用以下命令确认java的版本。“ docker exec {container_id} java -version

请建议我如何更改 docker 映像或容器中的 java 版本?

是否可以通过运行linux命令来更改java版本?或者是否需要执行其他一些步骤?

msu*_*cil 5

@RakshithM 是的,Jenkins 必须引用Dockerfile来构建 docker 容器,如果你发现了,那么你可以按照 @David 的建议进行操作。供您参考https://docs.docker.com/language/java/build-images/,任何容器都是指基础映像,该映像具有我们的应用程序运行的基本环境,该环境基本上以FROMdocker 文件开头。例如:

FROM openjdk:16-alpine3.13
Run Code Online (Sandbox Code Playgroud)

这里我们的容器指的是位于其顶部的openjdk:16图像minimal linux environment with java 16,其中包含其他工具,这些工具在dockerfile. 所以在你的情况下,如果你找到了Dockerfile那么你可以将其更改为你需要的java版本。