Files
nexus/openclaw/xingyao/docker/discover-macmini-apps.sh
2026-03-23 20:57:45 +08:00

80 lines
2.3 KiB
Bash

#!/bin/bash
# Mac Mini Docker应用发现脚本
set -e
echo "🔍 开始扫描Mac Mini上的Docker应用..."
echo "======================================"
# 1. 查找所有docker-compose文件
echo "📁 查找docker-compose文件..."
COMPOSE_FILES=$(find ~ -name "docker-compose.yml" -o -name "docker-compose.yaml" 2>/dev/null | grep -v "node_modules" | grep -v ".git" | head -20)
if [ -z "$COMPOSE_FILES" ]; then
echo "❌ 未找到docker-compose文件"
exit 1
fi
echo "✅ 找到 $(echo "$COMPOSE_FILES" | wc -l) 个docker-compose文件"
# 2. 分析每个docker-compose文件
echo ""
echo "📊 分析Docker Compose项目..."
echo "--------------------------------------"
for file in $COMPOSE_FILES; do
dir=$(dirname "$file")
project_name=$(basename "$dir")
echo "项目: $project_name"
echo "路径: $dir"
# 检查是否有正在运行的服务
cd "$dir" 2>/dev/null && docker compose ps --services 2>/dev/null | while read service; do
status=$(cd "$dir" && docker compose ps $service 2>/dev/null | grep $service)
if echo "$status" | grep -q "Up"; then
echo "$service: 运行中"
else
echo " ⏸️ $service: 未运行"
fi
done
echo "--------------------------------------"
done
# 3. 检查正在运行的独立容器
echo ""
echo "🐳 检查独立Docker容器..."
echo "--------------------------------------"
docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}" | head -10
# 4. 建议的目录结构
echo ""
echo "🏗️ 建议的Docker项目目录结构:"
echo "--------------------------------------"
echo "建议创建: ~/docker-projects/"
echo "├── openclaw/"
echo "│ └── docker-compose.yml"
echo "├── postgres/"
echo "│ └── docker-compose.yml"
echo "└── redis/"
echo " └── docker-compose.yml"
echo ""
echo "这样便于统一管理Mac Mini上的Docker应用"
# 5. 更新建议
echo ""
echo "🎯 更新docker-apps.yaml的建议:"
echo "--------------------------------------"
echo "在apps部分添加:"
echo ""
echo " openclaw:"
echo " path: ~/docker-projects/openclaw"
echo " server: macmini"
echo " description: OpenClaw网关服务"
echo " discovered: $(date +%Y-%m-%d)"
echo ""
echo "然后运行配置编辑工具测试连接"
echo ""
echo "✅ 扫描完成!"