> 文章列表 > 如何将golang程序的镜像压缩到4MB么?

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

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

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

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

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

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

具体命令

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

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

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

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

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

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

FROM iron/baseWORKDIR /rootCOPY viot-worker /rootRUN chmodx viot-workerENTRYPOINT [\"./viot-worker\"]

打包镜像的命令

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

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

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

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

执行了下面命令。

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

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

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

就我去购网