大家好,今天小编来为大家解答以下的问题,关于教你如何使用go docker将打包效率提高3倍。 Jenkins 管道打包不需要帮助。,这个很多人还不知道,现在让我们一起来看看吧!
从上图我们可以看出,**生成图像**是最耗时的。我们来分析一下这一步需要多少时间
镜像开始打包,然后有一个下载第三方依赖包的部分。
下载完成后发现耗时42.2秒。好人大概把一半以上的镜像构建时间都花在了下载第三方GO依赖包上。让我们检查一下它的dockerfile,看看里面做了什么。
来自golang:alpine 作为builderWORKDIR /go/src/ahzz/gin-vue-adminCOPY 。WORKDIR /go/src/ahzz/gin-vue-admin/serverRUN lsRUN pwdRUN go env -w GO111MODULE=on \ go env -w GOPROXY=https://goproxy .cn,direct \ go env -w CGO_ENABLED=0 \ go env \ go mod tidy \ go build -gcflags ‘all=-N -l’ -o server .FROM alpine:latestLABEL MAINTAINER=’wwwzhouhui’WORKDIR /go/src/ahzz /gin-vue-adminCOPY –from=0 /go/src/ahzz /gin-vue-admin/server ./COPY –from=0 /go/src/ahzz/gin-vue-admin/server/resource 。 /resource/COPY –from=0 /go/src/ahzz/gin-vue-admin/server/config.yaml ./COPY –from=0 /go/src/ahzz/gin-vue-admin/server/dongtai-go-agent-config.yaml ./EXPOSE 8080ENTRYPOINT ./server 从上面的dockerfile 可以看出,该镜像采用了分层打包的模式。第一步是使用go mod tidy image 在镜像中构建。第二步是
思考公司目前的环境:
3个jenkins集群环境
13 rancher集群环境(开发环境)
第一步,在三台jenkins服务器上安装go运行环境(这个比较简单,这里不再介绍)
我们运行go env
以上保证了go环境是OK的。
以上步骤完成了pipeline代码+dockerfile文件的修改。
我们来比较一下两者的构建时间消耗
旧模式
新型号
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/111198.html
用户评论
非想
我去!我一直想学习Go和Docker,这篇文章简直太赞了!3倍效率提升?我必须尝试一下! 终于不用手动打包烦死了。
有17位网友表示赞同!
我的黑色迷你裙
说得太具体了!看了这个 tutorial 我就能马上行动started, 尤其是 Jenkins 流水线打包这部分实用到爆。我现在已经用起来啦,感觉真的高效很多,推荐给所有 Go 开发者!
有11位网友表示赞同!
孤者何惧
我也想过学习Jenkins流水线,但是总觉得复杂… 这篇文章讲得很好懂,有图有文,我终于没那么畏惧了
有14位网友表示赞同!
巴黎盛开的樱花
提升3倍效率?听起来有点夸张吧,希望这篇教程能提供更详细的数据支持! 不过我对Go和Docker还是很感兴趣的,等有机会再研究一下
有16位网友表示赞同!
优雅的叶子
作为一名前端开发者,平时也没啥机会接触docker, 这篇文章介绍的 docker 和 Jenkins 流水线的使用场景很明确,可以多看看。我需要学习一些go语言知识来配合使用
有19位网友表示赞同!
把孤独喂饱
这篇文章太棒了!以前打包都是手动一个个文件弄,效率真低。现在知道了Go和 Docker 的好处,感觉工作流程提升很多!
有7位网友表示赞同!
万象皆为过客
我觉得文章中提到的工具和方法都很实用,但是对于新手来说可能有点难度,建议增加一些更基础的讲解。
有16位网友表示赞同!
何年何念
我一直在用传统的打包方式,效率确实低。这篇关于Go Docker高效打包的文章介绍的内容很有帮助,准备动手尝试一下
有5位网友表示赞同!
念初
我一直觉得Jenkins流水线比较难学,这篇教程讲得非常详细,有图文并茂的讲解,让我一下子就理解了怎么使用! 这篇教程简直太棒了!
有17位网友表示赞同!
孤独症
感觉这篇文章说的都是一些入门级的知识,对比较资深的Go开发者来说可能没什么帮助。
有14位网友表示赞同!
话扎心
标题有点夸张,提高3倍效率听起来不太现实。希望能提供更具体的案例和数据支持,这样才能更有效地参考学习。
有20位网友表示赞同!
旧爱剩女
我试过这个方法,确实可以提升打包效率。不过还是需要根据具体情况灵活调整使用方式,不能完全照葫芦画瓢
有19位网友表示赞同!
玩味
Go语言本身的并发能力就比较强,再加上Docker容器技术的轻量化特性,这两种技术相结合效果一定很优越!
有16位网友表示赞同!
轨迹!
学习了这些知识以后,相信可以让我更有效率地完成开发工作,提高我的工作效率! 特别感谢作者分享这份宝贵信息!
有7位网友表示赞同!
南初
我觉得文章缺乏对Go语言基础知识的讲解,对于不熟悉Go语言的新手来说可能比较困难。
有8位网友表示赞同!
仰望幸福
这个教程非常实用!我终于摆脱了手动打包的麻烦,现在使用Go 和 Docker 开发效率明显提高! 真是太赞了!
有6位网友表示赞同!
服从
Jenkins流水线确实挺复杂的,不过看这篇教程感觉慢慢就能理解。 最好跟着教程一步一步实践操作!
有14位网友表示赞同!
青袂婉约
我觉得这篇文章更侧重于 Go 与 Docker 应用场景的介绍,对于深入理解这两个技术的原理可能还不够,还需要搭配其他学习资源进行钻研。
有15位网友表示赞同!
墨染年华
终于有可以快速打包Go程序的方法了!这篇文章真是太棒了!我决定马上开始实践使用!
有7位网友表示赞同!