【使用docker openjdk21-alpine构建过程】

使用Alpine-linux作为基础镜像构建openjdk21

闲话少说我们开始,下面是Dockerfile文件

# 使用最新的 Alpine 镜像进行多阶段构建
FROM alpine:latest AS builder

# 设置环境变量
ENV JAVA_HOME=/opt/java/openjdk
ENV PATH="$JAVA_HOME/bin:$PATH"

# 使用阿里云的镜像源加速,并安装必要的工具
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
    apk update && \
    apk add --no-cache tar bash

# 复制本地的 OpenJDK 安装包到镜像中
COPY OpenJDK21U-jre_x64_alpine-linux_hotspot_21.0.3_9.tar.gz /tmp/

# 解压并安装 OpenJDK
RUN mkdir -p /opt/java/openjdk && \
    tar -xzf /tmp/OpenJDK21U-jre_x64_alpine-linux_hotspot_21.0.3_9.tar.gz -C /opt/java/openjdk --strip-components=1

# 使用最小的基础镜像构建最终镜像
FROM alpine:latest

# 设置环境变量
ENV JAVA_HOME=/opt/java/openjdk
ENV PATH="$JAVA_HOME/bin:$PATH"

# 使用阿里云的镜像源加速,并安装 libc6-compat
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
    apk update && \
    apk add --no-cache libc6-compat

# 从构建阶段复制 OpenJDK
COPY --from=builder /opt/java/openjdk /opt/java/openjdk

# 验证 Java 安装
RUN echo "Contents of /opt/java/openjdk/bin:" && ls -l /opt/java/openjdk/bin && \
    echo "Running java -version command:" && /opt/java/openjdk/bin/java -version && \
    echo "JAVA_HOME=$JAVA_HOME" && echo "PATH=$PATH"

# 设置工作目录
WORKDIR /app

# 定义容器启动时执行的默认命令
CMD ["sh"]

以上dockerfile我已经验证可以正常使用,想必大家都能看懂,我用了阿里云加速;如果你也要使用的最好把OpenJDK21U-jre_x64_alpine-linux_hotspot_21.0.3_9.tar.gz下载到本地和Dockerfile在同一个目录
打包,打包命令如下:

docker build -t openjdk21-alpine .
docker run -it --rm openjdk21-alpine sh
java -version

以上就是打包的全过程啦!各位小伙伴还有更好的方式可以在评论区找我交流
给各位小伙伴jdk下载地址
https://adoptium.net/zh-CN/temurin/releases/?version=21
我选择的是jre各位可以选择自己合适的包下载
在这里插入图片描述

最后看一下打出来的镜像大小
在这里插入图片描述

最后的图片中遮挡了镜像大小173MB,主要是jre解压后比较大。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值