如何将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/baseWORKDIR /rootCOPY viot-worker /rootRUN chmodx viot-workerENTRYPOINT [\"./viot-worker\"]
打包镜像的命令
docker build -t demo/viot-worker:3 .

这个时候整个镜像到了15MB
然后我出动了镜像压缩神器docker-slim。
执行了下面命令。
docker-slim build demo/viot-worker:3 --http-probe=false
中途出现红色字体,点击回车就好。



