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

How to change the java version in docker image or container?

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

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

通过在服务器中使用以下命令确认了 java 的版本。 “docker 执行 {container_id} java -版本

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

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

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

FROM openjdk:16-alpine3.13

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