制作更小的springboot项目docker容器
操作一:选择一个更小的基础镜像
通常情况下我们的Dockerfile文件如下
FROM java:8
VOLUME /tmp
ADD myserver.jar app.jar
RUN bash -c 'touch /app.jar'
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezone
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
然后制作完镜像后你会发现丫的将近700MB,纳尼,什么鬼??
之后我们去服务器,docker images | grep java
,你会发现,如下
java 8 d23bdf5b1b1b 2 years ago 643MB
哇!643MB,这是一个神奇的镜像.当你甚至还没有制作自己的应用程序,基础镜像已经大出天际了.
但是不要怕不要怕,它这么大,我们不用它就可以啊.
那么我们需要找一个java基础镜像替代它,下面我就找到了,
那就是Alpine Java,当然这个也比较大,但比官方java的要小得多。如下你看到的大小:
anapsix/alpine-java latest c45785c254c5 3 months ago 126MB
直接比官方java小了将近520MB,有木有?
然后你把你的Dockerfile改了就好,如下
FROM anapsix/alpine-java
VOLUME /tmp
ADD myserver.jar app.jar
RUN bash -c 'touch /app.jar'
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezone
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
还有一个比较小的
openjdk:8-jre-alpine
通过Docker多阶段构建将多个层压缩为一个
未完待续…