三 构建最小JDK Docker镜像

一 较大的镜像往往会导致移植,迁移缓慢。最后启动并进入容器发现,jdk用的是openjdk,那么我们就需要在构建镜像时使用更小的jdk作为基础镜像,进而减小镜像的大小。
二、解决方案

使用Oracle的JRE不是openjdk,并构建成Docker镜像。具体步骤如下:

2.1 下载并上传jre到linux服务器
jdk下载地址
在这里插入图片描述
大小大概是77M.

2.2 删除无用文件

1 解压压缩包

tar -xvcf jre-8u181-linux-x64.tar.gz

2 删除无用的文件

cd jre1.8.0_181/
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

3重新打包

tar zcvf jre8.tar.gz *
2.3 新建Dockerfile
# using alpine-glibc instead of alpine  is mainly because JDK relies on glibc
FROM docker.io/jeanblanchard/alpine-glibc
# author
MAINTAINER simon
# 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.4 构建docker镜像
docker build -t simon/java8:1.0 .

这样构建的jdk镜像大概是120M左右。

2.5 修改Dockerfile配置
FROM simon/java8:1.0
VOLUME /tmp
COPY . /usr/local/xy_pay_risk
ENV JAVA_OPTS=""
ENV ACTIVE=""
WORKDIR /usr/local/xy_pay_risk
# ENTRYPOINT 后面跟着exec 则后面跟着的java进程的pid=1
ENTRYPOINT exec java ${JAVA_OPTS} -jar /usr/local/xy_pay_risk/xy-pay-risk.jar --spring.profiles.active=${ACTIVE}

构建之后的镜像只有200M左右。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值