73 lines
1.8 KiB
Bash
Executable File
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 ""
|