一.目的:
制作基于openjdk21的基础镜像,方便后续使用
内容:
1.使用的是Debian 11 slim 作为基础镜像(在此感谢no name大佬提醒我alpine做为基础镜像不稳定的问题)
2.使用adoptium的OpenJDK21U-jre_x64_linux_hotspot_21.0.4_7.tar.gz 做为环境
打包后的镜像大小在319MB
二.dockerfile 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| # 使用 Debian 11 slim 作为基础镜像 FROM debian:11-slim
# 设置环境变量 ENV jdk=OpenJDK21U-jre_x64_linux_hotspot_21.0.4_7.tar.gz MAINTAINER bright "1024347104@qq.com"
# 配置镜像源 RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list
# 更新软件包索引并安装必要的工具和依赖 RUN apt-get update && apt-get install -y \ locales \ tzdata \ fontconfig \ libfontconfig1 \ && rm -rf /var/lib/apt/lists/*
# 生成并设置中文 locale RUN echo "zh_CN.UTF-8 UTF-8" >> /etc/locale.gen \ && locale-gen \ && echo "LANG=zh_CN.UTF-8" > /etc/default/locale
# 设置时区 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone
# 添加 JDK 文件 # JDK 文件可以从 https://adoptium.net/zh-CN/temurin/releases/ 下载 COPY $jdk /usr/local/ RUN tar -xzf /usr/local/$jdk -C /usr/local/ && rm /usr/local/$jdk
# 设置环境变量 ENV JAVA_HOME=/usr/local/jdk-21.0.4+7-jre ENV PATH=$JAVA_HOME/bin:$PATH
# 设置 Java 字符编码环境变量 ENV JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF8"
|
三.调试
1 2 3 4 5 6
| #生成镜像 docker build -t 1024347104/jdk21 . #测试镜像 docker run --rm -it --name test 1024347104/jdk21 #进入临时镜像测试是否成功 java -version
|
四.效果图
1.运行效果图
2.查看dokcer镜像
1
| docker inspect 1024347104/jdk21:latest
|