製作更小的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多階段構建將多個層壓縮爲一個
未完待續…