实用buildkit构建
wget https://github.com/moby/buildkit/releases/download/v0.10.5/buildkit-v0.10.5.linux-amd64.tar.gz
tar -xf buildkit-v0.10.5.linux-amd64.tar.gz -C /usr/local/
服务配置
cat > /etc/systemd/system/buildkit.socket <<EOF
[Unit]
Description=BuildKit
Documentation=https://github.com/moby/buildkit
[Socket]
ListenStream=%t/buildkit/buildkitd.sock
[Install]
WantedBy=sockets.target
EOF
cat > /etc/systemd/system/buildkitd.service << EOF
[Unit]
Description=BuildKit
Documentation=https://github.com/moby/buildkit
# Requires=buildkit.socket
After=buildkit.socket
[Service]
ExecStart=/usr/local/bin/buildkitd --oci-worker=false --containerd-worker=true
[Install]
WantedBy=multi-user.target
EOF
启动服务
systemctl daemon-reload
systemctl enable --now buildkitd
systemctl status buildkitd
镜像构建
buildctl --addr tcp://localhost:1234 build --frontend=dockerfile.v0 --local context=. --local dockerfile=. --output type=image,name=nginx:latest
ctr -n buildkit i ls
使用nerdctl构建镜像
wget https://github.com/containerd/nerdctl/releases/download/v0.22.2/nerdctl-0.22.2-linux-amd64.tar.gz
tar -xf nerdctl-1.0.0-linux-amd64.tar.gz -C /usr/local/bin
echo 'source <(nerdctl compltion bash)' >> ~/.bashrc
镜像构建
[root@k8s-master01 test]# nerdctl build -t docker.io/library/nginx:latest -f Dockerfile .
[+] Building 13.5s (6/6) FINISHED
unpacking docker.io/library/nginx:latest (sha256:12d2d33d4c3e3218e12662c3b3b8255cbe898c8b91af17abc93b289cc0b9d340)...
[root@k8s-master01 test]# crictl image ls
IMAGE TAG IMAGE ID SIZE
docker.io/library/nginx latest 76c69feac34e8 56.8MB
测试文件
cat > Dockerfile <<END
FROM nginx
#RUN echo "11"
RUN echo "6666666"
END