alpine_jdk:1.8

时间:2021-07-27
本文章向大家介绍alpine_jdk:1.8,主要包括alpine_jdk:1.8使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

jdk8_基于安装包

用Alpine跑了JDK8的镜像结果发现,JDK还是无法执行.后来翻阅文档才发现
Java是基于GUN Standard C library(glibc)
Alpine是基于MUSL libc(mini libc)

所以Alpine需要安装glibc的库,以下是官方给出wiki
https://wiki.alpinelinux.org/wiki/Running_glibc_programs

#下载包,解压
tar -zxvf jdk-8u231-linux-x64.tar.gz
#进入目录
cd jdk1.8.0_231
#删除文本文件
rm -rf COPYRIGHT LICENSE README release THIRDPARTYLICENSEREADME-JAVAFX.txt THIRDPARTYLICENSEREADME.txt Welcome.html
#删除其他无用文件
rm -rf lib/plugin.jar \
lib/ext/jfxrt.jar \
bin/javaws \
lib/javaws.jar \
lib/desktop \
plugin \
lib/deploy* \
lib/*javafx* \
lib/*jfx* \
lib/amd64/libdecora_sse.so \
lib/amd64/libprism_*.so \
lib/amd64/libfxplugins.so \
lib/amd64/libglass.so \
lib/amd64/libgstreamer-lite.so \
lib/amd64/libjavafx*.so \
lib/amd64/libjfx*.so

#重新打包
tar zcvf jdk1.8.0_231.tar.gz jdk1.8.0_231
 
#下载glibc-2.30-r0.apk
https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.30-r0/glibc-2.30-r0.apk
 
#下载 sgerrand.rsa.pub
https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub

编写 dockerfile文件

vi Dockerfile
FROM alpine:latest
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
RUN apk update \
    && apk add tzdata \
    && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone
COPY glibc-2.33-r0.apk  /opt/
COPY sgerrand.rsa.pub /etc/apk/keys/
RUN ls -l /opt
RUN apk add /opt/glibc-2.33-r0.apk && rm -rf /opt/glibc-2.33-r0.apk

#ADD 命令会自动解压缩
ADD jdk-8u261-linux-x64.tar.gz  /usr/local
# 设置JAVA变量环境
ENV JAVA_HOME=/usr/local/jdk1.8.0_261
ENV CLASSPATH=$JAVA_HOME/bin
ENV PATH=.:$JAVA_HOME/bin:$PATH
CMD ["java","-version"]

原文地址:https://www.cnblogs.com/yangtao416/p/15065651.html