Files
shellscripts/nerdctl/setup_nerdctl_config_rootless.sh
2024-11-12 20:57:40 +08:00

50 lines
1.7 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# setup_nerdctl_config.sh
# 说明:此脚本用于配置 nerdctl 的 rootless 模式配置文件 ~/.config/nerdctl/nerdctl.toml。
# 该配置文件包含 nerdctl 的基础配置如调试模式、socket 地址、命名空间等。
# 获取当前用户
CURRENT_USER=$(whoami)
echo "当前用户:$CURRENT_USER"
# 配置文件路径
CONFIG_DIR="$HOME/.config/nerdctl"
CONFIG_FILE="$CONFIG_DIR/nerdctl.toml"
# 创建配置目录
mkdir -p "$CONFIG_DIR"
# 生成 nerdctl 配置文件
echo "生成 nerdctl 配置文件..."
cat > "$CONFIG_FILE" <<EOF
debug = false
address = "unix:///run/containerd/containerd.sock"
namespace = "buildkit"
snapshotter = "overlayfs"
cgroup_manager = "cgroupfs"
hosts_dir = ["$HOME/.config/containerd/certs.d"]
experimental = true
EOF
# 确保 /run/containerd/containerd.sock 权限正确
echo "配置 containerd.sock 的权限..."
sudo groupadd -f containerd # 创建 containerd 组(如果不存在)
sudo usermod -aG containerd "$CURRENT_USER" # 将当前用户添加到 containerd 组
sudo chgrp containerd /run/containerd/containerd.sock
sudo chmod 660 /run/containerd/containerd.sock
# 重启相关服务
echo "重启相关服务以应用新配置..."
systemctl --user daemon-reload
systemctl --user restart nerdctl
sudo systemctl daemon-reload
sudo systemctl restart containerd
# 提示用户重新登录以应用对组的更改
echo "完成。请重新登录会话以应用对 containerd 组的更改,使 $CURRENT_USER 可以使用 /run/containerd/containerd.sock。"
# 输出完成信息
echo "nerdctl 配置文件已生成: $CONFIG_FILE"
echo "相关服务已重启详细配置选项请参考官方文档https://github.com/containerd/nerdctl/blob/main/docs/config.md"