制作JDK17 arm64基础镜像,解决字体安装问题
1、下载jdk17 arm64的安装包
官网下载地址
2、编写Dockerfile
图形验证码生成需要使用到相关字体,所以基础镜像把字体相关也安装上。
# 基础镜像
FROM arm64v8/centos:8.4.2105MAINTAINER hqh# 换源
RUN sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/CentOS-* && \sed -i 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.aliyun.com|g' /etc/yum.repos.d/CentOS-*# 使用 yum 安装包并清除缓存
RUN yum makecache# 安装字体
RUN yum install -y fontconfig freetype-devel# 刷新字体缓存
RUN fc-cache -fv# 创建JDK目录
RUN mkdir /usr/local/jdk
WORKDIR /usr/local/jdk# 自动解压到该目录下
ADD jdk-17.0.14_linux-aarch64_bin.tar.gz /usr/local/jdk# 设置环境变量
ENV JAVA_HOME=/usr/local/jdk/jdk-17.0.14
ENV CLASSPATH=.:$JAVA_HOME/lib/jrt-fs.jar
ENV PATH=$PATH:$JAVA_HOME/bin
3、把安装包和Dockerfile放入同一个目录,如下
4、上传到装有Docker的arm架构的服务器上,运行以下命令
# 要加上`--network=host`,不然Docker无法联网下载资源
docker build --network=host -t oracle-jdk-arm64:17 .# 验证
docker run --rm oracle-jdk-arm64:17 java -version# 能看到java版本则说明正常
java version "17.0.14" 2025-01-21 LTS
Java(TM) SE Runtime Environment (build 17.0.14+8-LTS-191)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.14+8-LTS-191, mixed mode, sharing)# 打仓库标签,推送到仓库,镜像格式如:127.0.0.1/demo/oracle-jdk-arm64:17
docker tag oracle-jdk-arm64:17 harbor镜像仓库地址/项目/oracle-jdk-arm64:17
docker push harbor镜像仓库地址/项目/oracle-jdk-arm64:17