2025-09-18 21:47:56 +08:00

109 lines
3.4 KiB
Docker
Raw 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.

# 使用 Debian 12 (bookworm-slim) 作为基础镜像
FROM debian:bookworm-slim
# 设置元数据标签
LABEL maintainer="小蚂蚁云团队" \
version="1.0" \
description="基于Debian的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; \
\
# 配置阿里云Debian镜像源
echo "deb http://mirrors.aliyun.com/debian/ bookworm main non-free non-free-firmware" > /etc/apt/sources.list; \
echo "deb http://mirrors.aliyun.com/debian/ bookworm-updates main non-free non-free-firmware" >> /etc/apt/sources.list; \
echo "deb http://mirrors.aliyun.com/debian/ bookworm-backports main non-free non-free-firmware" >> /etc/apt/sources.list; \
echo "deb http://mirrors.aliyun.com/debian-security bookworm-security main non-free non-free-firmware" >> /etc/apt/sources.list; \
\
# 更新系统并安装必要的基础工具
apt-get update && \
apt-get install -y --no-install-recommends \
tzdata \
locales \
fontconfig \
fonts-dejavu \
fonts-wqy-microhei \
ca-certificates \
tar \
bash \
&& \
\
# 清理apt缓存以减少镜像大小
apt-get clean && \
rm -rf /var/lib/apt/lists/*; \
\
# 配置时区
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \
echo $TZ > /etc/timezone; \
\
# 生成中文本地化配置
echo "zh_CN.UTF-8 UTF-8" > /etc/locale.gen; \
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen; \
locale-gen; \
\
# 设置系统语言环境
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应用使用sh而不是bash
groupadd -r esxi && \
useradd -r -g esxi -d /opt/esxi -s /bin/sh 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"]