rootless in buildkit and containerd mirror iamges config shell script

This commit is contained in:
Your Name
2024-11-12 19:22:12 +08:00
parent a976a6af48
commit 3820e83c3a
2 changed files with 180 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
#!/bin/bash
# setup_buildkit_config_rootless.sh
# 说明:此脚本用于配置 BuildKit 的 rootless 模式配置文件。
# 官方文档和配置选项请参考https://github.com/moby/buildkit/blob/master/docs/buildkitd.toml.md
# 获取当前执行脚本的用户
CURRENT_USER=$(whoami)
echo "当前用户:$CURRENT_USER"
# BuildKit 配置文件路径
CONFIG_DIR="$HOME/.config/buildkit"
CONFIG_FILE="$CONFIG_DIR/buildkit.toml"
# 镜像源配置
declare -A mirrors
mirrors=(
["docker.io"]="https://docker.io https://docker.unsee.tech https://dockerhub.icu"
["registry.k8s.io"]="https://registry.k8s.io https://k8s.m.daocloud.io"
["docker.elastic.co"]="https://docker.elastic.co https://elastic.m.daocloud.io"
["gcr.io"]="https://gcr.io https://gcr.m.daocloud.io"
["ghcr.io"]="https://ghcr.io https://ghcr.m.daocloud.io"
["k8s.gcr.io"]="https://k8s.gcr.io https://k8s-gcr.m.daocloud.io"
["mcr.microsoft.com"]="https://mcr.microsoft.com https://mcr.m.daocloud.io"
["nvcr.io"]="https://nvcr.io https://nvcr.m.daocloud.io"
["quay.io"]="https://quay.io https://quay.m.daocloud.io"
["registry.jujucharms.com"]="https://registry.jujucharms.com https://jujucharms.m.daocloud.io"
["rocks.canonical.com"]="https://rocks.canonical.com https://rocks-canonical.m.daocloud.io"
)
# 创建配置目录
mkdir -p "$CONFIG_DIR"
# 生成 BuildKit 配置文件
echo "生成 BuildKit 配置文件..."
cat > "$CONFIG_FILE" <<EOF
[worker.oci]
enabled = false
[worker.containerd]
enabled = true
namespace = "buildkit"
platforms = ["linux/amd64", "linux/arm64"]
gc = true
gckeepstorage = 9000
# 注册表配置,包含多个镜像加速器
EOF
# 添加镜像源到配置文件
echo "配置镜像加速器..."
for registry in "${!mirrors[@]}"; do
IFS=' ' read -r server host1 host2 <<<"${mirrors[$registry]}"
cat >> "$CONFIG_FILE" <<EOF
[registry."$registry"]
mirrors = ["$host1", "$host2"]
http = true
insecure = true
EOF
done
# 输出完成信息
echo "BuildKit 配置文件已生成: $CONFIG_FILE"
echo "镜像配置已设置完成详细选项请参考官方文档https://github.com/moby/buildkit/blob/master/docs/buildkitd.toml.md"