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

下载支持中文所需文件

# 密钥下载
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"]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Alpine Linux 是一种轻量级的 Linux 发行版,以其小型、安全和高效的特性而知名。要制作一个包含 JDK 21 的 Alpine 镜像,你需要按照以下步骤操作: 1. **基础镜像选择**: 使用 `alpine` 基础镜像作为起点,因为它的体积小且适合构建最小化镜像。你可以使用官方的 `alpine:latest` 或者指定特定版本,如 `alpine:3.14`。 2. **下载 JDK**: 使用 `apk add` 或 `wget` 下载 JDK 21 的二进制文件。你可以从 Oracle 或 Adoptium(以前的 OpenJDK)官方网站下载最新版本的 JDK,然后复制到镜像中。 3. **解压并配置**: 将下载JDK压缩包解压到镜像中的一个合适的目录,例如 `/opt` 或 `/usr/lib/jvm`。记得设置必要的权限以便后续使用。 4. **环境变量设置**: 添加环境变量 `JAVA_HOME` 指向JDK的安装路径,这样系统可以方便地找到Java。 5. **添加启动脚本**: 创建一个启动脚本(比如 `/usr/bin/java`),使用户可以通过命令行运行 `java` 或 `javac`。 6. **清理不必要的文件**: 删除下载JDK安装包以减小程序大小。 7. **运行时权限**: 如果你的镜像需要在容器中运行,确保给予必要的执行权限。 8. **制作镜像**: 使用 `docker build` 命令创建一个新的Docker镜像,指定基础镜像和上述操作的结果。 **相关问题--:** 1. 如何确保在镜像JDK的依赖项是最新的? 2. 在制作镜像时,如何处理JDK更新的问题? 3. 如何在Dockerfile中编写命令来添加启动脚本并设置环境变量?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值