我在使用skaffold
来开发一些kubernetes服务方面度过了一段美好的时光,但是我周期中最长的步骤之一是拉出容器的所有依赖项。
有没有人对我如何最好地在一个层中缓存所有依赖项有建议?在docker容器中构建go二进制文件是否有最佳实践?我应该在执行go get
的图层上吗? (我也是一个新手,正在编写二进制文件,还不了解所有的花哨信息。)
最佳答案
我同意格里高里·米哈尔金(Grigoriy Mikhalkin)的观点。关于您的性能改进,我想命名基于Docker Build Enhancements的moby/buildkit。在撰写本文时,这些工具的文档尚未正确记录,但是经过反复试验,您可能会找到解决方案。
使用buildkit,可以在RUN
语句中使用高速缓存,以减少后续执行的时间。他们也提供了example of Go in their docs。为了使其工作,您必须为Docker守护程序和客户端启用实验性功能(在上面的链接中进行了介绍)。
关于docker - 进行dockerized构建,缓存依赖项拉取层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61083819/