我想使用最新版本的buildkit来构建我的docker映像,因为最新版本的docker中包含的buildkit版本存在一些bug。
是否可以使用buildctl命令构建映像的本地版本,然后使用docker run
运行此映像?
我尝试添加--output type=image,name=<tag>,push=false
,但docker没有找到此映像。我希望避免推送此映像,因为它仅用于运行某些测试。我已设法使用--export-cache type=local,dest=<folder>
在本地导出该高速缓存,但我不确定如何从docker run
使用它。
或者,是否可以升级docker在其发布的dind
容器中使用的buildkit版本?
1条答案
按热度按时间fhity93d1#
根据文档,当使用
buildx
和docker
驱动程序(也使用BuildKit)时,您应该能够使用type=docker
,并且它会将其加载到docker守护进程中。https://docs.docker.com/engine/reference/commandline/buildx_build/#output
映像导出程序将生成结果作为映像或清单列表写入。使用Docker驱动程序时,映像将显示在Docker映像中。或者,可以通过指定属性将映像自动推送到注册表。
属性键:
我不确定
buildctl
/buildkitd
有何不同,但是当我尝试使用docker
输出时,它会让您指定一个输出文件,而不是将其加载到守护进程中。因此,除了直接加载外,还可以将其保存为一个tarball,然后加载到docker中。
可能有一个更直接的方法,但这是唯一的方法,我可以找到,而尝试所有的输出选项,从真正有限的文档
buildkitd
/buildctl
,以及尝试和失败,以创建一个本地映像通过docker buildx
。