# Java Runtime Image
# 多版本 JRE 运行时环境，用于运行各种 Java 服务

FROM debian:latest

LABEL maintainer="www.imyeyu.com"
LABEL description="Java Runtime with JRE 8/21 for running Java services"

# 环境变量
ENV LANG=C.UTF-8 \
    LC_ALL=C.UTF-8 \
    TZ=Asia/Shanghai

# JRE 路径
ENV JAVA8_HOME=/usr/lib/jvm/temurin-8-jre-amd64 \
    JAVA21_HOME=/usr/lib/jvm/temurin-21-jre-amd64

# 默认使用 JRE 21
ENV JAVA_HOME=${JAVA21_HOME} \
    PATH="${JAVA21_HOME}/bin:${PATH}"

# 安装依赖和 JRE
RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        # 基础工具
        ca-certificates \
        curl \
        gnupg \
        # 用户指定依赖
        openssh-client \
        libncurses6 \
        libncursesw6 \
        perl-base \
        perl \
        libfreetype6 \
        fontconfig \
        fonts-wqy-microhei \
        fonts-wqy-zenhei \
        fonts-arphic-ukai \
        fonts-arphic-uming \
        # Java 服务运行常用依赖
        procps \
        net-tools \
        iproute2 \
        tzdata \
        locales \
        # 图形处理
        libjpeg62-turbo \
        libpng16-16 \
        # 数据库客户端库
        libmariadb3 \
        libpq5 \
    # 添加 Adoptium 仓库
    && curl -fsSL https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor -o /usr/share/keyrings/adoptium.gpg \
    && echo "deb [signed-by=/usr/share/keyrings/adoptium.gpg] https://packages.adoptium.net/artifactory/deb bookworm main" > /etc/apt/sources.list.d/adoptium.list \
    && apt-get update \
    && apt-get install -y --no-install-recommends \
        temurin-8-jre \
        temurin-21-jre \
    # 配置时区
    && ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ} > /etc/timezone \
    # 清理
    && rm -rf /var/lib/apt/lists/*

WORKDIR /root/bin

CMD ["java", "-version"]
