【问题标题】:How to change the java version in docker image or container? [closed]如何更改 docker 镜像或容器中的 java 版本? [关闭]
【发布时间】:2021-08-06 23:35:40
【问题描述】:

在我的 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版本?还是需要执行其他一些步骤?

【问题讨论】:

  • 如果你能找到jenkins使用的配置,那么你可以配置它,否则需要遵循一些效率不高的解决方法。
  • 通常这是在你的镜像的 Dockerfile 的FROM 行中控制的。
  • @msucil 你的意思是詹金斯管道脚本?
  • @DavidMaze 我对 docker 概念不太熟悉。试图从谷歌获得更多关于你建议的信息

标签: java docker jenkins kubernetes openshift


【解决方案1】:

@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 版本。

【讨论】:

  • 我们已经使用 JIB 工具创建了 docker 镜像。所以在我的项目的 gradle 文件中,我添加了以下属性以将 java 11 的版本更改为 8。 jib.from.image = 'gcr.io/distroless/java:8' 以前就像这个 jib.from。图像 = 'gcr.io/distroless/java:debug'。这解决了我的问题。感谢您的意见@msucil
猜你喜欢
  • 1970-01-01
  • 2015-07-14
  • 2014-12-31
  • 2020-10-04
  • 1970-01-01
  • 2018-09-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多