65 lines
2.0 KiB
Bash
Executable File
65 lines
2.0 KiB
Bash
Executable File
#!/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" |