如何将golang程序的镜像压缩到4MB么?

如何将golang程序的镜像压缩到4MB么?

最初go程序的大小是17MB。

首先我使用upx将它压缩到4MB。

这是一个压缩二进制的工具。

具体命令:

GOOS=linux GOARCH=amd64 go build -ldflags "-a -s -w"  // 这里-ldflags去掉些符号。
upx -9 -k viot-worker  // -k是保留备份的意思,viot-worker是二进制文件的名称,替换成你们的就可以了。

现在是4MB,但是还没有打包成镜像

由于之前看过其他大佬的文章,所以我精心挑选一个镜像它叫iron/base,只有一个7MB的基础镜像。

然后我通过以下Dockerfile将go程序打包成镜像。简化了些跟文章无关的内容。

FROM iron/base
WORKDIR /root
COPY viot-worker /root

RUN chmod  x viot-worker
ENTRYPOINT ["./viot-worker"]

打包镜像的命令

docker build -t demo/viot-worker:3 .

这个时候整个镜像到了15MB

然后我出动了镜像压缩神器docker-slim。

执行了下面命令。

docker-slim build demo/viot-worker:3 --http-probe=false
   

中途出现红色字体,点击回车就好。

生成了x.slim的镜像就是打包后的镜像,大小是4MB。

这个时候整个镜像就已经被压缩到4MB

接下来我们试试可否运行

由于我是部署在私有云的k8s上的。因此修改这个镜像地址就可以测试是否运行了。

容器重新部署后,容器日志显示已经启动成功!

现在我们已经成功将go程序打包成一个4MB的镜像并运行起来,貌似还挺快的。

现在总结一下我们的技巧。

总结技巧

  1. 使用upx压缩二进制文件,这一步从17MB->4MB。
  2. 使用iron/base镜像,让整体体积不至于太膨胀。这一步从4MB->15MB。
  3. 使用docker-slim压缩镜像,这一步从15MB->4MB。
(0)

相关推荐

  • Linux压缩文件格式总结

    对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕。别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rar。可 ...

  • 虚拟光驱怎么用 虚拟光驱的安装步骤和载入镜像的方法

    虚拟光驱怎么用,手把手教您虚拟光驱的用法,本文虽有些长,是想尽可能详细的把过程给写出来,还请各位看管耐心的阅读; 什么是虚拟光驱:一种模拟光盘驱动器的程序,它的作用是模拟真实光驱,读取或运行存放硬盘当 ...

  • Gzip压缩无效的终极解决方案!

    A、首先我们来说下配置步骤,具体如下: 启用Gzip压缩步骤 1、单击“开始”—“管理工具”—“Internet 信息服务(IIS)管理器”,打开IIS管理器; 2、打开IIS管理器 在IIS管理器中 ...

  • windows2003如何配置II6的Gzip压缩

    步骤一: 1. 打开Internet信息服务(IIS)管理器,右击“网站”-》“属性”,选择“服务”。在“HTTP压缩”框中选中“压缩应用程序文件”和“压缩静态文件”,按需要设置“临时目录”和“临时目 ...

  • 怎样压缩word文档大小(如何把word文件压缩)

    在Office软件中有个组件叫word,word是我们最常用的一种文件格式,可以快速的创建和编辑文件.报告.网页或图形等文件.正因为word可以对图形,图像这些有形的文件进行编辑,所以在日常的学习工作 ...

  • pdf文件怎样压缩到最小(pdf文件如何压缩变小)

    pdf压缩文件怎么压缩最小?pdf作为一个强大的电子文档文件,应用非常广泛,很多工作都需要用到pdf文件.但是使用pdf文件的时候,难免遇到体积较大pdf文件,影响传输和储存.所以遇到较大的pdf文件 ...

  • pdf文件怎么压缩最小(如何把pdf文件压缩得小一点)

    怎么将pdf怎么压缩的小一点?怎么将pdf怎么压缩的小一点?PDF已经成为我们生活学习和工作中接触频率较高的一个文件格式,pdf格式具有兼容性较高.稳定性不错的优点,深受大家的喜欢.工作中我们经常需要 ...

  • Windows2003服务器IIS启用Gzip压缩的设置方法

    本文介绍的HTTP压缩方式,采用的是Windows系统设置的方式,优点是效率较高. 一. HTTP压缩概述 01 HTTP压缩是在Web服务器 和浏览器间传输压缩文本内容的方法.HTTP压缩采用通用的 ...

  • u大侠虚拟光驱安装步骤和载入镜像的方法

    众所周知,虚拟光驱是一种模拟光盘驱动器的程序,它的作用是模拟真实光驱,读取或运行存放硬盘当中的镜像文件,这些镜像文件可能是直接复制于光盘的数据;想要读取光盘信息必须将光盘放入真实光驱内.但有了虚拟光驱 ...

  • iso文件用什么打开

    对于使用光盘或者虚拟光驱安装操作系统或其它大型软件的时候都可以看到安装的文件是iso文件,很多朋友都不知道iso文件用什么打开,什么是iso文件?最简单的说就是以iso为扩展名的文件,它是iso966 ...