buildkit部署

2022/7/2 23:22:59

本文主要是介绍buildkit部署,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、由于containerd无法构建docker镜像,所以需要依赖buildkit来构建镜像,buildkit组成:

  • 1.服务端为buildkitd,负责和runc或containerd后端连接干活,目前只支持这两个后端。
  • 2.客户端为buildctl,负责解析镜像构建文件Dockerfile,并向服务端发出构建指令,所以客户端可以和服务端不在一台机器上,也不需要root权限之类。
  • 3.服务端默认使用runc后端,但是建议使用containerd后端,这样构建出的镜像就会存在containerd的buildkit名字空间下。

二、部署

  • 下载地址:buildkit
  • 将下载好的文件解压后得到bin文件移动到/usr/local/buildkit文件夹下,配置好环境变量,执行source /etc/profile使其生效。
export BUILDKIT_HOME=/usr/local/buildkit
export PTAH=$BUILDKIT_HOME/bin:PATH

三、使用systemd管理buildkit

  • 地址:examples/systemd/system
  • /usr/lib/systemd/system下分别创建buildkit.servicebuildkit.socket两个文件,使用--oci-worker=false --containerd-worker=true参数,可以让buildkitd服务使用containerd后端。安装git命令,执行systemctl daemon-reload && systemctl start buildkit
  • buildkit.service
[Unit]
Description=BuildKit
Requires=buildkit.socket
After=buildkit.socket
Documentation=https://github.com/moby/buildkit

[Service]
Type=notify
ExecStart=/usr/local/buildkit/bin/buildkitd --oci-worker=false --containerd-worker=true

[Install]
WantedBy=multi-user.target
  • buildkit.socket
[Unit]
Description=BuildKit
Documentation=https://github.com/moby/buildkit

[Socket]
ListenStream=%t/buildkit/buildkitd.sock
SocketMode=0660

[Install]
WantedBy=sockets.target


这篇关于buildkit部署的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程