美文网首页
oracle jdk镜像dockerfile

oracle jdk镜像dockerfile

作者: 青衫渡 | 来源:发表于2020-04-22 14:02 被阅读0次

一、说明

1、使用的是oracle jdk,不是openjdk,至于为什么不用jre而用jdk,得问我们公司的架构师。

2、java依赖glibc,所以基础镜像使用的是alpine并安装glibc,

二、制作

1、下载oracle jdk并删除不必要的文件,下载过程略。

解压:

tar zxvf jdk-8u181-linux-x64.tar.gz

2、删除无用的文件

rm -rf jdk1.8.0_181/COPYRIGHT LICENSE release THIRDPARTYLICENSEREADME-JAVAFX.txt THIRDPARTYLICENSEREADME.txt README.html && \
rm -rf jdk1.8.0_181/jre/COPYRIGHT LICENSE  README THIRDPARTYLICENSEREADME-JAVAFX.txt THIRDPARTYLICENSEREADME.txt Welcome.html
cd jdk1.8.0_181/ && rm -rf *src.zip \
        lib/missioncontrol \
        lib/visualvm \
        lib/*javafx* \
        jre/lib/plugin.jar" \
        jre/lib/ext/jfxrt.jar" \
        jre/bin/javaws \
        jre/lib/javaws.jar \
        jre/lib/desktop \
        jre/plugin \
        jre/lib/deploy* \
        jre/lib/*javafx* \
        jre/lib/*jfx* \
        jre/lib/amd64/libdecora_sse.so \
        jre/lib/amd64/libprism_*.so \
        jre/lib/amd64/libfxplugins.so \
        jre/lib/amd64/libglass.so \
        jre/lib/amd64/libgstreamer-lite.so \
        jre/lib/amd64/libjavafx*.so \
        jre/lib/amd64/libjfx*.so  \
        jre/bin/jjs \
        jre/bin/keytool \
        jre/bin/orbd \
        jre/bin/pack200 \
        jre/bin/policytool \
        jre/bin/rmid \
        jre/bin/rmiregistry \
        jre/bin/servertool \
        jre/bin/tnameserv \
        jre/bin/unpack200 \
        jre/lib/ext/nashorn.jar \
        jre/lib/jfr.jar \
        jre/lib/jfr \
        jre/lib/oblique-fonts

4、dockerfile中指定环境变量

ENV LANG=C.UTF-8 \
    JAVA_HOME=/usr/local/jdk1.8.0_181 \
    PATH=$PATH:/usr/local/jdk1.8.0_181/bin \
    TZ=Asia/Shanghai

5、添加时区

echo "" > /etc/apk/repositories \
    && echo "https://mirrors.aliyun.com/alpine/v3.11/main/" >> /etc/apk/repositories \
    && echo "https://mirrors.aliyun.com/alpine/v3.11/community/" >> /etc/apk/repositories \
    && apk update && apk add --no-cache tzdata tini \
    && rm -rf /var/cache/apk/* /tmp/* \
    && ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

6、添加压缩后的jdk,我直接添加了整个目录,没有再进行打包

ADD jdk1.8.0_181 /usr/local/jdk1.8.0_181

7、glibc

github地址

8、参考链接

9、乱码问题

上面创建的镜像是有问题的,在java项目运行时,日志等中文会乱码的,解决方案:下载locale-archive文件,

将locale-archive和dockerfile放在同一目录下,添加:

ADD locale-archive /usr/glibc-compat/lib/locale

相关文章

网友评论

      本文标题:oracle jdk镜像dockerfile

      本文链接:https://www.haomeiwen.com/subject/foriihtx.html