docker镜像大小问题

2023年再回头看这些应用技术的时候,觉得就很好笑,原以为花时间研究的有点竞争力的东西,今天已经变得很容易,当我讲springboot升级到2.7.6,使用发生了较大变化
首先spring2.4.x之后需要引入对应的版本,否则读取不到bootstrap.yml配置

 <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

编译的jar已经不需要配置layers.xml,而且docker分层默认是开启的,已经不需要设置layers.xml
2

<plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
<!--                <configuration>-->
<!--                    <layers>-->
<!--                        <enabled>true</enabled>-->
<!--                        <configuration>${project.basedir}/src/main/resources/layers.xml</configuration>-->
<!--                    </layers>-->
<!--                </configuration>-->
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

1 从jdk入手
java依赖glibc,而alpine linux发行版本的优势在于容量超小,Alpine
而生产环境只需要jre就可以,因为jre是java的运行环境,并不需要jdk,因为jdk是java开发工具包,jre-8u181-linux-x64.tar.gz是压缩后的,预计78M
windows解压之后207M

# 基础镜像
FROM frolvlad/alpine-glibc

# 作者
MAINTAINER dzm

# 安装jre
ADD jre-8u181-linux-x64.tar.gz /usr/java/jdk/

# 设置时区GTM+8(打开注释设置时区)
#ADD Shanghai  /etc/localtime
#RUN echo "Asia/Shanghai" > /etc/timezone

# 设置变量

ENV JAVA_HOME /usr/java/jdk/jre1.8.0_181
ENV PATH ${
   PATH}:${JAVA_HOME}/bin

# 运行容器的工作目录
WORKDIR /opt

通过执行命令,查看每层文件的大小,其中99e2394e1814为镜像id,下方可以看到按照上面的Dockerfile打包之后每层的情况。
从下面看到最大的217M应该是jre的解压之后的大小
可以通过docker history 3f755698926c --no-trunc=true查看完整信息

[root@bg7 ~]# docker history 99e2394e1814
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
99e2394e1814        5 days ago          /bin/sh -c #(nop) WORKDIR /opt                  0B                  
cb818d3a1445        5 days ago          /bin/sh -c #(nop)  ENV PATH=/usr/local/sbin:…   0B                  
6eaf8e8577bd        5 days ago          /bin/sh -c #(nop)  ENV JAVA_HOME=/usr/java/j…   0B                  
a8fb7d6e6857        5 days ago          /bin/sh -c #(nop) ADD file:29e530d02a2c72e1b…   217MB               
85b9e327a2fd        5 days ago          /bin/sh -c #(nop)  MAINTAINER dzm              0B                  
84c377141a24        2 months ago        /bin/sh -c ALPINE_GLIBC_BASE_URL="https://gi…   12.4MB              
<missing>           2 months ago        /bin/sh -c #(nop)  ENV LANG=C.UTF-8    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

warrah

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值