之前写的项目用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左右!

  • 分类: JAVA
  • 标签: 无