# 使用 Debian 13 (trixie) 作为基础镜像
# debian:trixie-slim（Debian 13 的代号）
FROM debian:trixie-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"]