最小的docker jre
之前写的项目用jenkins
+ docker
部署,发现镜像都要700M左右,然而基础镜像java:8
大小就有643M。由于自己只运行java项目,就基于alpine做了基础的jre8镜像。
下载jre
下载地址:jre下载地址
删除多余文件
解压jre
包,删除多余文件
这里在网上找打了删除多余文件的命令
#删除文本文件
rm -rf COPYRIGHT LICENSE README release THIRDPARTYLICENSEREADME-JAVAFX.txtTHIRDPARTYLICENSEREADME.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
制作jre8基础镜像
-
使用的是Oracle的JRE不是openjdk。
-
因为java依赖glibc,所以基础镜像使用的是alpine-glibc而非alpine,alpine-glibc大概是11.1M。
在制作的时候把jre放进去,并指定环境变量即可。
FROM docker.io/jeanblanchard/alpine-glibc
MAINTAINER wangyiidii
ADD jre8.tar.gz /usr/local/jre8/
ENV JAVA_HOME /usr/local/jre8/
ENV PATH ${PATH}:${JAVA_HOME}/bin
WORKDIR /opt
这里我直接push到了阿里云仓库,用的时候直接pull就行
docker pull registry.cn-beijing.aliyuncs.com/yiidii-hub/jre8:v1
效果
运行:
docker run -it --name jre8 registry.cn-beijing.aliyuncs.com/yiidii-hub/jre8:v1
之前(基于jdk:8):
现在(基于jre8):
可以看到:jre基础环境只有138M,而java服务也只有200M左右!