#!/bin/bash echo "=== Elasticsearch 容器连接检查 ===" echo # 检查 es 容器是否存在 if ! docker ps -a --format "table {{.Names}}" | grep -q "^es$"; then echo "❌ 未找到名为 'es' 的容器" echo "请确保 Elasticsearch 容器已创建且名称为 'es'" exit 1 fi echo "✓ 找到 'es' 容器" # 检查 proxy 网络是否存在 if ! docker network ls --format "table {{.Name}}" | grep -q "^proxy$"; then echo "❌ 未找到 'proxy' 网络" echo "正在创建 proxy 网络..." docker network create proxy echo "✓ proxy 网络创建成功" else echo "✓ 找到 'proxy' 网络" fi # 检查 es 容器是否已连接到 proxy 网络 if ! docker network inspect proxy --format '{{range .Containers}}{{.Name}} {{end}}' | grep -q "es"; then echo "⚠️ 'es' 容器未连接到 'proxy' 网络" echo "正在连接 'es' 容器到 'proxy' 网络..." docker network connect proxy es echo "✓ 'es' 容器已连接到 'proxy' 网络" else echo "✓ 'es' 容器已连接到 'proxy' 网络" fi # 检查 es 容器状态 ES_STATUS=$(docker inspect es --format '{{.State.Status}}') if [ "$ES_STATUS" = "running" ]; then echo "✓ 'es' 容器正在运行" else echo "⚠️ 'es' 容器状态: $ES_STATUS" echo "正在启动 'es' 容器..." docker start es echo "✓ 'es' 容器已启动" fi # 测试 Elasticsearch 连接 echo echo "🧪 测试 Elasticsearch 连接..." if docker exec es curl -s http://localhost:9200/_cluster/health > /dev/null; then echo "✓ Elasticsearch 连接正常" docker exec es curl -s http://localhost:9200/_cluster/health | grep -o '"status":"[^"]*"' | cut -d'"' -f4 else echo "❌ Elasticsearch 连接失败" echo "请检查 Elasticsearch 配置" fi echo echo "=== 检查完成 ===" echo echo "📋 网络中的容器:" docker network inspect proxy --format '{{range .Containers}}{{.Name}} ({{.Name}}){{end}}' echo echo "🚀 现在可以部署数字档案系统:" echo " ./archive-manager.sh deploy"