docker使用alpine构建jdk21镜像

这篇具有很好参考价值的文章主要介绍了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镜像文章来源地址https://www.toymoban.com/news/detail-794808.html

到了这里,关于docker使用alpine构建jdk21镜像的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Dockerfile自定义镜像 - 基于 java:8-alpine 镜像,将一个Java项目构建为镜像

    目录   一、前置知识 1.镜像结构 2.Dockerfile是什么 二、自定义一个 java 项目镜像 1.创建一个空目录,在这个空目录中创建一个文件,命名为 DockerFile,最后将 java 项目打包成 jar 包,放到这个目录中 2.编写 Dockerfile 文件 3.使用 docker build 构建为一个镜像 4.使用 docker run 运行镜像

    2024年02月07日
    浏览(46)
  • 基于 Alpine 环境源码构建 alibaba-tengine(阿里巴巴)的 Docker 镜像

    Alpine Linux 是一款极其轻量级的 Linux 发行版,基于 busybox ,多被当做 Docker 镜像的底包(基础镜像),在使用容器时或多或少都会接触到此系统,本篇文章我们以该镜像构建 tengine-alpine 镜像。 说明:此处以 alpine 3.18.3 tengine 3.0.0 为实验进行容器镜像构建。 小巧: 基于 Musl li

    2024年02月11日
    浏览(50)
  • Docker构建JDK 镜像

    在 Docker官网中的openJDK 镜像中,默认不是使用的北京时间,会导致启动jar应用程序时时区不对的情况,这里在 openJDK镜像的基础上,设置使用中国北京时间,Dockerfile如下 构建镜像 这个镜像我已 push 到个人的docker 官方仓库,可直接使用 docker pull kevin2099/openjdk:15.0.2-slim 下载 构

    2023年04月08日
    浏览(35)
  • dockerfile以alpine为基础镜像构建nginx镜像

    Alpine Linux 是一个社区开发的面向安全应用的轻量级Linux发行版。 Alpine 的意思是“高山的”,它采用了musl libc和busybox以减小系统的体积和运行时资源消耗,同时还提供了自己的包管理工具apk。 由于其小巧、安全、简单以及功能完备的特点,被广泛应用于众多Docker容器中。 a

    2023年04月22日
    浏览(54)
  • 【使用debian镜像】docker的基础镜像很多,生产环境中使用建议还是不要使用centos和alpine的基础镜像了,直接使用debian的基础镜像即可。

    本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/108971807 未经博主允许不得转载。 博主CSDN地址是:https://blog.csdn.net/freewebsys 博主掘金地址是:https://juejin.cn/user/585379920479288 博主知乎地址是:https://www.zhihu.com/people/freewebsystem 为啥要使用debian镜像呢? 首先 centos的官网已

    2024年02月08日
    浏览(46)
  • JAVA新实战1:使用vscode+gradle+openJDK21搭建java springboot3项目开发环境

            作为一个干了多年的全栈技术工程师,厌倦了使用盗版IDE,近些年开发Java一直使用IntelliJ IDEA进行Springboot后端项目开发,对于IntelliJ IDEA 授权问题,一直花钱买学生类的授权,但经常被屏蔽,无法使用,又不舍得花大钱买企业版,索性不再使用了。决定改用 VsCode+Gr

    2024年02月03日
    浏览(63)
  • docker Alpine镜像介绍(基础镜像)

    https://hub.docker.com/_/alpine https://github.com/alpinejs/alpine Alpine镜像 是一个基于Alpine Linux发行版构建的Docker镜像。Alpine Linux是一个轻量级的Linux发行版,它的目标是提供一个安全、简单、高效的操作系统。Alpine Linux采用了musl libc和BusyBox来最小化系统的大小,并且使用了自己的包管理

    2024年02月13日
    浏览(44)
  • CentOS 7中,配置了Oracle jdk,但是使用java -version验证时,出现的版本是OpenJDK,如何解决?

    1.首先,检查已安装的jdk版本 2.移除、卸载圈红的系统自带的openjdk 3.配置环境变量并使其生效 1) 编辑/etc/profile 添加如下内容: 2) 使/etc/profile生效 4.查看oracle jdk是否配置成功

    2024年02月14日
    浏览(47)
  • 如何在 Linux 命令行下玩转 Docker——如何使用 Dockerfile 来构建和运行容器镜像

    作者:禅与计算机程序设计艺术 Docker 是一款开源的容器化技术,它利用 Linux 内核的容器特性,将应用部署到独立的进程环境中。基于容器技术可以极大地提高开发者和运维人员的效率,降低部署、测试和生产环节中的成本,有效地实现云计算资源的弹性伸缩。 本文主要介绍

    2024年02月07日
    浏览(53)
  • 使用dockerfile手动构建JDK11镜像运行容器并校验

    Docker官方维护镜像的公共仓库网站 Docker Hub 国内无法访问了,大部分镜像无法下载,准备逐步构建自己的镜像库。【转载aliyun官方-容器镜像服务 ACR】Docker常见问题 阿里云容器镜像服务ACR(Alibaba Cloud Container Registry)是面向容器镜像、Helm Chart等符合OCI标准的云原生制品安全托

    2024年02月03日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包