Files
ljwx-k8s/restart-orbstack.sh
2026-02-20 22:50:45 +08:00

73 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# OrbStack 重启脚本 - 用于使 Docker 配置生效
# 适用于修改 ~/.orbstack/config/docker.json 后
set -e
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
log_success() { echo -e "${GREEN}[✓]${NC} $1"; }
log_warning() { echo -e "${YELLOW}[!]${NC} $1"; }
echo ""
log_info "=== 重启 OrbStack ==="
echo ""
# 1. 退出 OrbStack
log_info "1/3 退出 OrbStack 应用..."
osascript -e 'quit app "OrbStack"' 2>/dev/null || pkill -9 OrbStack
log_info "等待 OrbStack 完全退出..."
sleep 3
# 2. 重新启动
log_info "2/3 启动 OrbStack 应用..."
open -a OrbStack
log_info "等待 Docker 守护进程就绪..."
# 等待 Docker 守护进程启动(最多 20 秒)
WAIT_COUNT=0
while ! docker info &>/dev/null; do
((WAIT_COUNT++))
if [[ $WAIT_COUNT -gt 20 ]]; then
log_warning "Docker 守护进程启动超时"
log_info "请手动检查 OrbStack 状态"
exit 1
fi
sleep 1
done
log_success "Docker 守护进程已就绪"
sleep 2
# 3. 验证配置
log_info "3/3 验证 Registry Mirror 配置..."
echo ""
if docker info 2>/dev/null | grep -q "Registry Mirrors"; then
log_success "Registry Mirror 配置已生效"
echo ""
docker info 2>/dev/null | grep -A 5 "Registry Mirrors"
echo ""
log_success "✅ 重启完成,Registry Mirror 已激活"
else
log_warning "⚠️ 未检测到 Registry Mirror 配置"
echo ""
log_info "请检查配置文件:"
echo " cat ~/.orbstack/config/docker.json | jq '.\"registry-mirrors\"'"
echo ""
log_info "如果配置正确,可能需要再等几秒,然后运行:"
echo " docker info | grep -A 5 'Registry Mirrors'"
fi
echo ""
log_info "测试命令(应该从本地 Harbor 拉取):"
echo " docker pull nginx:alpine"
echo " docker pull redis:7-alpine"
echo ""