作者:吴业亮
博客:http://blog.csdn.net/wylfengyujiancheng
一、准备条件:
1、因为java依赖glibc,所以基础镜像使用的是alpine-glibc而非alpine
2、下载jre,地址:
https://www.java.com/en/download/manual.jsp
二、精简jre包
1、解压
# tar -zxvf jre-8u221-linux-i586.tar.gz
2、进入目录
cd jre1.8.0_221/
3、删除文本文件
rm -rf COPYRIGHT LICENSE README release THIRDPARTYLICENSEREADME-JAVAFX.txtTHIRDPARTYLICENSEREADME.txt Welcome.html
4、删除其他无用文件
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
5、重新打包所有文件
# tar zcvf jre8.tar.gz *
三、制作镜像
1、创建Dockerfile
# using alpine-glibc instead of alpine is mainly because JDK relies on glibc
FROM docker.io/jeanblanchard/alpine-glibc
# author
MAINTAINER scc <wuyeliang>
# A streamlined jre
ADD jre8.tar.gz /usr/java/jdk/
# set env
ENV JAVA_HOME /usr/java/jdk
ENV PATH ${PATH}:${JAVA_HOME}/bin
# run container with base path:/opt
WORKDIR /opt
2、构建
docker build -t java8:1.1 .
参考:
https://my.oschina.net/shyloveliyi/blog/1627020