2025-09-16 21:25:24 +08:00

100 lines
2.7 KiB
Docker
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 使用Ubuntu 22.04作为基础镜像
FROM ubuntu:22.04
# 设置元数据标签
LABEL maintainer="小蚂蚁云团队" \
version="1.0" \
description="基于Ubuntu 22.04的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 \
DEBIAN_FRONTEND=noninteractive
# 设置工作目录
WORKDIR /tmp
# 复制本地JRE压缩包到镜像中
COPY jre-8u202-linux-x64.tar.gz /tmp/
# 安装必要的系统包并配置环境
RUN set -eux; \
\
# 更新系统并安装中文语言支持
apt-get update && \
apt-get install -y --no-install-recommends \
tzdata \
locales \
fontconfig \
fonts-dejavu \
fonts-wqy-microhei \
ca-certificates \
&& \
\
# 清理apt缓存以减少镜像大小
apt-get clean && \
rm -rf /var/lib/apt/lists/*; \
\
# 配置时区
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \
echo $TZ > /etc/timezone; \
\
# 生成中文本地化配置
locale-gen zh_CN.UTF-8 && \
locale-gen en_US.UTF-8; \
\
# 设置系统语言环境
update-locale LANG=zh_CN.UTF-8; \
\
# 解压JRE到/usr/local目录
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/local/jre; \
\
# 创建全局可执行文件链接
update-alternatives --install "/usr/bin/java" "java" "/usr/local/jre/bin/java" 1 && \
update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/jre/bin/javac" 1 && \
update-alternatives --set java /usr/local/jre/bin/java; \
\
# 创建字体目录并设置权限
mkdir -p /usr/share/fonts/truetype/ && \
chmod 755 /usr/share/fonts/truetype/; \
\
# 更新字体缓存
fc-cache -fv; \
\
# 验证JRE安装
java -version && \
/usr/local/jre/bin/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; \
\
# 设置文件权限
chmod -R 755 /usr/local/jre1.8.0_202 && \
chown -R root:root /usr/local/jre1.8.0_202
# 切换到应用目录
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"]