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.service
、buildkit.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
标签:socket,部署,containerd,--,buildkit,buildkitd,服务端 来源: https://www.cnblogs.com/gdcplasf/p/16438612.html