Update do_docker.sh

This commit is contained in:
悟空的日常镜像仓库 2024-03-25 22:59:34 +08:00
parent 3fc95bfc16
commit 772411708d
1 changed files with 55 additions and 21 deletions

View File

@ -18,7 +18,7 @@ install_depends_apps() {
blue "正在安装部署环境的所需要的工具 lsblk 和 fdisk ..." blue "正在安装部署环境的所需要的工具 lsblk 和 fdisk ..."
router_name=$(get_router_name) router_name=$(get_router_name)
case "$router_name" in case "$router_name" in
*2500*|*3000*) *2500* | *3000*)
opkg update >/dev/null 2>&1 opkg update >/dev/null 2>&1
if opkg install lsblk fdisk >/dev/null 2>&1; then if opkg install lsblk fdisk >/dev/null 2>&1; then
green "$router_name 的 lsblk fdisk 工具 安装成功。" green "$router_name 的 lsblk fdisk 工具 安装成功。"
@ -134,7 +134,7 @@ configure_and_start_docker() {
install_docker install_docker
configure_docker_to_start_on_boot "$new_partition" "$usb_mount_point" configure_docker_to_start_on_boot "$new_partition" "$usb_mount_point"
start_docker_and_check
} }
# 安装 Docker 和 dockerd # 安装 Docker 和 dockerd
@ -180,31 +180,65 @@ EOF
chmod +x /etc/init.d/docker chmod +x /etc/init.d/docker
/etc/init.d/docker enable /etc/init.d/docker enable
green "正在设置开机启动顺序的配置\n\n先挂载U盘,再启动Docker 修改/etc/rc.local后如下\n"
# 首先,备份 /etc/rc.local
cp /etc/rc.local /etc/rc.local.backup
# glinet系统重启后的 USB自动挂载点
SYSTEM_USB_AUTO_MOUNTPOINT="/tmp/mountd/disk1_part1"
# 卸载USB自动挂载点 挂载自定义挂载点 /mnt/upan_data
if ! grep -q "umount $SYSTEM_USB_AUTO_MOUNTPOINT" /etc/rc.local; then
sed -i '/exit 0/d' /etc/rc.local
# 将新的命令添加到 /etc/rc.local然后再加上 exit 0
{
echo "umount $SYSTEM_USB_AUTO_MOUNTPOINT || true"
echo "mount $new_partition $usb_mount_point || true"
echo "/etc/init.d/docker start || true"
echo "exit 0"
} >>/etc/rc.local
fi
cat /etc/rc.local
# 修改 /etc/config/dockerd 文件中的 data_root 配置
sed -i "/option data_root/c\ option data_root '/mnt/upan_data/docker/'" /etc/config/dockerd
# 安装完毕后
yellow "正在帮您启动Docker....若出现卡住现象 20s都没反应。建议手动重启路由器"
/etc/init.d/docker start
# 初始化计数器
counter=0
# 循环检查 Docker 守护进程是否已经启动
until docker info >/dev/null 2>&1; do
counter=$((counter + 1))
echo "Waiting for Docker daemon to start..."
sleep 1
# 如果等待时间达到10秒则跳出循环
if [ $counter -eq 10 ]; then
red "Docker 启动失败或超时,您可以手动启动docker 执行 /etc/init.d/docker start"
exit 1
fi
done
check_docker_info
} }
# 启动 Docker 并检查 # 启动 Docker 并检查
start_docker_and_check() { check_docker_info() {
/etc/init.d/docker start green "Docker 启动成功并设置正确,您可以直接使用啦~\n"
sleep 5 DOCKER_ROOT_DIR=$(docker info 2>&1 | grep -v "WARNING" | grep "Docker Root Dir" | awk '{print $4}')
if ! docker info >/dev/null 2>&1; then light_magenta "当前Docker根目录为: $DOCKER_ROOT_DIR"
red "Docker 启动失败,您可以手动启动docker 执行 /etc/init.d/docker start" light_yellow "Docker根目录剩余空间:$(df -h $DOCKER_ROOT_DIR | awk 'NR==2{print $4}')"
yellow "不过为了验证下次启动docker的有效性 建议手动重启路由器一次 祝您使用愉快\n"
red "是否立即重启?(y/n)"
read -r answer
if [ "$answer" = "y" ] || [ -z "$answer" ]; then
red "正在重启..."
reboot
else else
green "Docker 启动成功并设置正确,您可以直接使用啦~\n" yellow "您选择了不重启"
DOCKER_ROOT_DIR=$(docker info 2>&1 | grep -v "WARNING" | grep "Docker Root Dir" | awk '{print $4}')
light_magenta "当前Docker根目录为: $DOCKER_ROOT_DIR"
light_yellow "Docker根目录剩余空间:$(df -h $DOCKER_ROOT_DIR | awk 'NR==2{print $4}')"
yellow "不过为了验证下次启动docker的有效性 建议手动重启路由器一次 祝您使用愉快\n"
red "是否立即重启?(y/n)"
read -r answer
if [ "$answer" = "y" ] || [ -z "$answer" ]; then
red "正在重启..."
reboot
else
yellow "您选择了不重启"
fi
fi fi
} }
# START # START
install_depends_apps install_depends_apps
prepare_usb_device prepare_usb_device