# 使用Rocky Linux 8作为基础镜像 FROM rockylinux:8 # 设置元数据标签 LABEL maintainer="小蚂蚁云团队" \ version="1.0" \ description="基于Rocky Linux 8的JRE 8u202运行环境(支持中英文)" \ java.version="1.8.0_202" # 设置环境变量 ENV TZ=Asia/Shanghai \ LANG=zh_CN.UTF-8 \ LANGUAGE=zh_CN:zh:en_US:en \ LC_ALL=zh_CN.UTF-8 \ JAVA_HOME=/usr/local/jre1.8.0_202 \ PATH=/usr/local/jre1.8.0_202/bin:$PATH # 设置工作目录 WORKDIR /tmp # 复制本地JRE压缩包到镜像中 COPY jre-8u202-linux-x64.tar.gz /tmp/ # 安装必要的系统包并配置环境 RUN set -eux; \ \ # 更新系统并安装中文语言支持 dnf update -y && \ dnf install -y \ tzdata \ glibc-langpack-zh \ glibc-langpack-en \ fontconfig \ dejavu-sans-fonts \ dejavu-serif-fonts \ dejavu-sans-mono-fonts \ wqy-microhei-fonts \ && \ \ # 清理dnf缓存以减少镜像大小 dnf clean all && \ rm -rf /var/cache/dnf; \ \ # 配置时区 ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \ echo $TZ > /etc/timezone; \ \ # 生成中文本地化配置 localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 && \ localedef -c -f UTF-8 -i en_US en_US.UTF-8; \ \ # 设置系统语言环境 echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf; \ \ # 创建Java安装目录 mkdir -p /usr/local/java; \ \ # 解压JRE并设置权限(JRE包解压后通常直接包含jre目录) tar -xzf jre-8u202-linux-x64.tar.gz -C /usr/local/ && \ \ # 删除临时文件 rm -f jre-8u202-linux-x64.tar.gz; \ \ # 创建符号链接以便版本升级时更容易管理 ln -sf /usr/local/jre1.8.0_202 /usr/bin/jre; \ \ # 创建字体目录 mkdir -p /usr/share/fonts/ && \ chmod 755 /usr/share/fonts/ && \ cp ./fonts/simsun.ttf /usr/share/fonts/ && \ \ # 更新字体缓存 fc-cache -fv; \ \ # 验证JRE安装 java -version; \ \ # 创建非root用户用于运行Java应用 groupadd -r esxi && \ useradd -r -g esxi -d /opt/esxi -s /bin/bash esxi && \ mkdir -p /opt/esxi && \ chown -R esxi:esxi /opt/esxi; # 切换到应用目录 WORKDIR /opt/apps # 设置默认用户(推荐在生产环境中启用) #USER esxi # 设置健康检查 HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \ CMD java -version > /dev/null 2>&1 || exit 1 # 设置默认启动命令 CMD ["java", "-version"]