docker - 进行dockerized构建,缓存依赖项拉取层

标签 docker go skaffold

我在使用skaffold来开发一些kubernetes服务方面度过了一段美好的时光,但是我周期中最长的步骤之一是拉出容器的所有依赖项。

有没有人对我如何最好地在一个层中缓存所有依赖项有建议?在docker容器中构建go二进制文件是否有最佳实践?我应该在执行go get的图层上吗? (我也是一个新手,正在编写二进制文件,还不了解所有的花哨信息。)

最佳答案

我同意格里高里·米哈尔金(Grigoriy Mikhalkin)的观点。关于您的性能改进,我想命名基于Docker Build Enhancementsmoby/buildkit。在撰写本文时,这些工具的文档尚未正确记录,但是经过反复试验,您可能会找到解决方案。

使用buildkit,可以在RUN语句中使用高速缓存,以减少后续执行的时间。他们也提供了example of Go in their docs。为了使其工作,您必须为Docker守护程序和客户端启用实验性功能(在上面的链接中进行了介绍)。

关于docker - 进行dockerized构建,缓存依赖项拉取层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61083819/

相关文章:

mysql - 如何使用mysql docker容器作为本地开发的mysql server?

go - 为什么一个空 slice 有 24 个字节?

python - Docker运行停止工作/bin/bash:entrypoint.sh:没有此类文件或目录

linux - docker run 的命令行参数

function - Golang MVC结构

go - 为什么 os/exec.CombinedOutput() 没有竞争条件?

docker - skaffold dev返回错误错误400:请求中指定的用户项目无效。

docker - (NGINX + Skaffold)-即使编译正确,在本地计算机上运行微服务系统也会始终生成404?

reactjs - create-react-app 和 Skaffold kubernetes 的行为不稳定且缓慢

python - DJANGO与docker和PostgreSQL