Files
docker-files/java_runtime/Dockerfile
2026-01-22 15:20:53 +08:00

68 lines
1.8 KiB
Docker

# Java Runtime Image
# 多版本 JRE 运行时环境,用于运行各种 Java 服务
FROM debian:bookworm
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 /app
CMD ["java", "-version"]