最近需要到学校实验室做私有云部署,我需要对我们的产品进行加密并且以最小包的方式提供出去,这里我们来制作一下最小JDK基础镜像,特此记录便于日后查阅。
1、下载
我们通过使用JRE来构建基础镜像,已达到最小化JDK基础镜像的目的,首先需要下载JRE(如果下载较慢可以选择下载本文附件中的JRE),传送门如下:
2、安装
然后解压JRE包,删除根目录下文本文件,然后删除其他不必要文件,命令如下:
#解压
tar -zxvf jre-8u161-linux-x64.tar.gz
#进入目录
cd jre1.8.0_161/
#删除文本文件
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
重新打包所有文件(不打包也可以,在Dockerfile里ADD这个目录即可,当前精简完jre目录大小是107M,压缩后是41M)
$ tar -zcvf jre8.tar.gz jre1.8.0_241/
创建Dockerfile(ps:Dockerfile文件要和jre8.tar.gz在一个路径下,如果不一样,下面的ADD里面的路径要相应变化)
FROM centos:7
MAINTAINER zxzhang <andywebjava@163.com>
ADD jre8.tar.gz /usr/java/
ENV JAVA_HOME /usr/java/jre1.8.0_241
ENV PATH ${PATH}:${JAVA_HOME}/bin
WORKDIR /usr/local/oas/
执行构建命令,这里注意仓库地址和标签换成自己的,命令如下:
$ sudo docker build -t 192.168.3.202:8088/common/java8:1.0 .
3、验证
测试运行,命令如下:
$ sudo docker run -it 192.168.3.202:8088/common/java8:1.0
# java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
到此 Docker 构建最小JDK基础镜像(基于Centos:7)介绍完成。