基于Alpine 制作JDK8镜像并支持中文

该文提供了一个Dockerfile示例,用于在AlpineLinux上安装中文支持的Glibc2.25,以及JDK1.8。Dockerfile中包含了下载Glibc相关包、设置时区和locale、清理无用包的步骤,确保环境能正确处理中文。之后,这个基础镜像被用于构建Java应用的运行环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载支持中文所需文件

# 密钥下载
https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub

# 依赖库下载
https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.25-r0/glibc-2.25-r0.apk
https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.25-r0/glibc-bin-2.25-r0.apk
https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.25-r0/glibc-i18n-2.25-r0.apk

注意glibc版本, 目前验证2.25没有问题, 使用2.35执行/usr/glibc-compat/bin/localedef会报错

JDK环境Dockerfile文件

FROM alpine:latest
# Configruation Zh_CN
COPY sgerrand.rsa.pub /etc/apk/keys/sgerrand.rsa.pub
COPY glibc-2.25-r0.apk glibc-bin-2.25-r0.apk glibc-i18n-2.25-r0.apk locale.md ./

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories && \
    apk --no-cache add ca-certificates tzdata curl && \
    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    echo "Asia/Shanghai" > /etc/timezone && \
    apk del tzdata && \
    apk add glibc-bin-2.25-r0.apk glibc-i18n-2.25-r0.apk glibc-2.25-r0.apk && \
    cat locale.md | xargs -i /usr/glibc-compat/bin/localedef -i {} -f UTF-8 {}.UTF-8 && \
    rm -f glibc-bin-2.25-r0.apk glibc-i18n-2.25-r0.apk glibc-2.25-r0.apk locale.md
ENV LANG=en_US.UTF-8 \
    LANGUAGE=en_US.UTF-8

# Install JDK1.8
ADD jdk1.8.0_291.tar.gz /usr/java1.8/
ENV JAVA_HOME /usr/java1.8/jdk1.8.0_291
ENV JRE_HOME ${JAVA_HOME}/jre
ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH ${JAVA_HOME}/bin:$PATH

构建镜像

docker build -t oracle-jdk8u291-alpine_zh:v1 .

Java项目运行环境Dockerfile

FROM oracle-jdk8u291-alpine_zh:v1

ADD *.jar /app/

# env for application
ENV PORT=""
ENV JAVA_OPTS=""
ENV APP_ARGS=""
ENV AGENT_ARGS=""

WORKDIR /app
EXPOSE $PORT

ENTRYPOINT ["/bin/bash","-c","java ${AGENT_ARGS} ${JAVA_OPTS} ${APP_ARGS} -jar /app/*.jar"]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值