#!/usr/bin/env bash # macOS:先尝试修复 Docker 引擎,再打开 Docker Desktop 图形界面 # 当「没有鲸鱼、没有窗口」但 docker 曾装过时,多半是引擎卡死(API 500 / 超时) # 用法:bash sdk/scripts/open_docker_desktop_gui.sh set -e if [[ "$(uname -s)" != "Darwin" ]]; then echo "本脚本仅适用于 macOS。" exit 1 fi if [[ ! -d "/Applications/Docker.app" ]]; then echo "未找到 /Applications/Docker.app,请先安装 Docker Desktop。" exit 1 fi if command -v docker >/dev/null 2>&1; then echo "== 1/3 尝试重启 Docker Desktop 引擎(docker desktop restart)==" if docker desktop restart 2>/dev/null; then echo " 已下发 restart,等待引擎响应…" for _ in $(seq 1 45); do if docker info >/dev/null 2>&1; then echo " 引擎已就绪(docker info 成功)。" break fi sleep 2 done else echo " restart 失败(可能 CLI 不可用),将直接尝试打开界面。" fi else echo "== 1/3 未找到 docker 命令,跳过引擎重启 ==" fi echo "== 2/3 打开 Docker Desktop 主程序(内嵌 App)==" open "/Applications/Docker.app/Contents/MacOS/Docker Desktop.app" 2>/dev/null || open -a Docker sleep 2 echo "== 3/3 打开仪表盘 URL ==" open "docker-desktop://dashboard" 2>/dev/null || true echo "" echo "已完成。若仍无鲸鱼图标:" echo " · 菜单栏右侧可能被折叠,点 «⋯» 或双箭头展开隐藏图标(macOS 新版本常见)。" echo " · 系统设置 → 控制中心 → 检查与菜单栏相关的显示选项。" echo " · 终端执行: docker desktop status 与 docker version 确认引擎是否正常。"