docker使用alpine构建jdk21镜像的详细步骤

 更新时间:2024年03月08日 09:14:13   作者:白坤鹏  
这篇文章主要给大家介绍了关于docker使用alpine构建jdk21镜像的详细步骤,镜像中包含了应用程序所需要的运行环境,函数库,配置,以及应用本身等各种文件,这些文件分层打包而成,需要的朋友可以参考下

1.问题描述

项目使用的是springboot3.0,进行docker打包的时候需要jdk17以上,索性我就使用jdk21了,但是进行docker打包的时候,没有找到jdk21的镜像包,所以就想自己打包一个。

2.遇到问题

1.最初想要基于centOS去封装一个镜像,但是觉得这个包体会比较大,然后了解到了alpine这个基础镜像,打算使用这个作为基础镜像,最初Dockerfile如下:

FROM alpine:latest

# 定义环境变量,以便后续使用
ENV JAVA_HOME /opt/jdk
ENV PATH $PATH:$JAVA_HOME/bin

# 安装必要的工具和依赖,libc6-compat用于兼容glibc环境
RUN apk add --no-cache libc6-compat

# 下载和解压JDK 21
COPY jdk21 /opt/jdk/

# 验证Java是否安装成功
RUN java -version

2.镜像打包成功了,但是java -version报错了:

Unable to load jimage library libjimage.so

3.最后尝试了直接使用apk add方法,最终的Dockerfile文件如下:

# 1.指定基础镜像
FROM alpine:latest
 
# 2.添加说明等信息
LABEL name=bkp description="jdk21 base on alpine image"

# 3.安装jdk(这一步很慢,请耐心等待,我安装大概花费了10分钟)
RUN apk add --no-cache --no-cache openjdk21

# 4.查看java版本 
CMD ["java","-version"]

3.详细步骤

1.安装docker

2.拉取alpine

docker pull alpine:latest

3.进入工作目录

# 路径看自己喜好就行
cd workspace/docker/jdk21

4.编辑Dockerfile

vim Dockerfile

添加以下内容

# 1.指定基础镜像
FROM alpine:latest
 
# 2.添加说明等信息
LABEL name=bkp description="jdk21 base on alpine image"

# 3.安装jdk(这一步很慢,请耐心等待,我安装大概花费了10分钟)
RUN apk add --no-cache --no-cache openjdk21

# 4.查看java版本 
CMD ["java","-version"]

5.构建镜像

注意:最后面有一个点 .

docker build -t java-alpine:21 .

6.等待构建完成

我们就得到了一个基于alpine包含jdk21的docker镜像

总结

到此这篇关于docker使用alpine构建jdk21镜像的文章就介绍到这了,更多相关docker alpine构建jdk21镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker容器Consul部署概述

    Docker容器Consul部署概述

    这篇文章主要介绍了Docker容器Consul部署概述,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-08-08
  • Docker 学习文档(知识结构整理)

    Docker 学习文档(知识结构整理)

    这篇文章主要介绍了Docker 学习文档的相关资料,需要的朋友可以参考下
    2016-11-11
  • docker images 如何建立自己的原生镜像

    docker images 如何建立自己的原生镜像

    这篇文章主要介绍了docker images 如何建立自己的原生镜像的相关资料,需要的朋友可以参考下
    2017-04-04
  • CoreOS配置Docker镜像加速器的方法

    CoreOS配置Docker镜像加速器的方法

    本篇文章主要介绍了CoreOS配置Docker镜像加速器的方法,CoreOS下的Docker配置是通过flannel unit来实现的,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • MacOS使用Docker创建MySQL主从数据库的方法

    MacOS使用Docker创建MySQL主从数据库的方法

    这篇文章主要介绍了MacOS使用Docker创建MySQL主从数据库,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Docker部署nGrinder性能测试平台过程解析

    Docker部署nGrinder性能测试平台过程解析

    这篇文章主要介绍了Docker部署nGrinder性能测试平台过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • docker中进入容器所在目录删除文件

    docker中进入容器所在目录删除文件

    这篇文章主要介绍了docker中进入容器所在目录删除文件方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Jenkins构建Docker镜像并推送至Harbor仓库的实现

    Jenkins构建Docker镜像并推送至Harbor仓库的实现

    本文主要介绍了Jenkins构建Docker镜像并推送至Harbor仓库,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 如何用docker部署redis cluster的方法

    如何用docker部署redis cluster的方法

    这篇文章主要介绍了如何用docker部署redis cluster的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • docker容器挂载宿主主机目录的操作方法

    docker容器挂载宿主主机目录的操作方法

    这篇文章主要介绍了docker容器挂载宿主主机目录的操作方法,本文给大家介绍的非常详细,具有参考借鉴价值,需要的朋友参考下吧
    2018-01-01

最新评论