buildkit实际上不需要安装,可以直接下载对应的二进制可执行文件
https://github.com/moby/buildkit/releases
下载之后会得到类似下面的文件夹
准备一个测试用的 Dockerfile
FROM ubuntu
COPY buildctl /
然后启动守护进程
sudo ./buildkitd
直接使用
buildctl build \
--frontend gateway.v0 \
--opt source=docker/dockerfile \
--local context=. \
--local dockerfile=.
得到的是一个内部缓存
By default, the build result and intermediate cache will only remain internally in BuildKit. An output needs to be specified to retrieve the result.
也就是说,如果需要使用这个镜像,需要搭配 output 使用
直接build到local,这里的local是未经加工的 raw 文件,输出到指定的文件夹内,并不是传统意义上的 docker local image
buildctl build \
--frontend gateway.v0 \
--opt source=docker/dockerfile \
--local context=. \
--local dockerfile=. \
--output type=local,dest=./images
build到本地 tar 文件
buildctl build \
--frontend gateway.v0 \
--opt source=docker/dockerfile \
--local context=. \
--local dockerfile=. \
--output type=tar,dest=out.tar
build 到传统 docker 的 local image
buildctl build \
--frontend gateway.v0 \
--opt source=docker/dockerfile \
--local context=. \
--local dockerfile=. \
--output type=docker,name=myimage | docker load
build 到 oci 镜像
buildctl build \
--frontend gateway.v0 \
--opt source=docker/dockerfile \
--local context=. \
--local dockerfile=. \
--output type=oci,dest=oci_output.tar
buildctl build \
--frontend gateway.v0 \
--opt source=docker/dockerfile \
--local context=. \
--local dockerfile=. \
--output type=image,name=docker.io/libaibai/testbuildkit,push=true