109 lines
3.4 KiB
Docker
109 lines
3.4 KiB
Docker
# 使用 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"] |