智能部署脚本:自动检测Redis,有则跳过无则创建

This commit is contained in:
2026-05-18 06:03:09 +08:00
parent 8da99d6861
commit d7c2a9cfad
2 changed files with 46 additions and 6 deletions

38
source_clean/deploy.sh Executable file
View File

@@ -0,0 +1,38 @@
#!/bin/bash
set -e
echo "🔍 检测 Redis..."
# 查找当前 docker-compose 网络内或全局已运行的 Redis 容器
EXISTING_REDIS=$(docker ps --format '{{.Names}}' | grep -i redis | head -1)
if [ -n "$EXISTING_REDIS" ]; then
# 检查它是否已在 cloudsearch-net 网络中
if docker network inspect cloudsearch-net --format '{{range .Containers}}{{.Name}} {{end}}' 2>/dev/null | grep -qw "$EXISTING_REDIS"; then
echo "✅ 已有 Redis: $EXISTING_REDIS (已加入 cloudsearch-net),跳过创建"
else
echo "✅ 已有 Redis: $EXISTING_REDIS,正在加入网络..."
docker network connect cloudsearch-net "$EXISTING_REDIS" 2>/dev/null || true
echo " ✅ 已加入 cloudsearch-net"
fi
REDIS_HOST="$EXISTING_REDIS"
PROFILE=""
else
echo "📦 未检测到 Redis将自动创建..."
REDIS_HOST="CloudSearch_Redis"
PROFILE="--profile full"
fi
echo "REDIS_URL=redis://${REDIS_HOST}:6379" > .env
echo "CORS_ORIGIN=https://zy.hk.timxx.cn" >> .env
echo "JWT_SECRET=cloudsearch-jwt-secret-2024" >> .env
echo "ADMIN_PASSWORD=0nL5kLhMIJ1121PYmQb25A" >> .env
echo "LOG_LEVEL=info" >> .env
echo ""
echo "🚀 启动服务..."
docker compose $PROFILE up -d
echo ""
echo "✅ 部署完成"
docker compose ps

View File

@@ -6,14 +6,14 @@ services:
restart: unless-stopped
ports: ["9527:9527"]
environment:
CORS_ORIGIN: "https://zy.hk.timxx.cn"
JWT_SECRET: "cloudsearch-jwt-secret-2024"
ADMIN_PASSWORD: "0nL5kLhMIJ1121PYmQb25A"
LOG_LEVEL: info
REDIS_URL: redis://redis:6379
REDIS_URL: ${REDIS_URL}
PANSOU_URL: http://pansou:8888
CORS_ORIGIN: ${CORS_ORIGIN:-https://zy.hk.timxx.cn}
JWT_SECRET: ${JWT_SECRET:-cloudsearch-jwt-secret-2024}
ADMIN_PASSWORD: ${ADMIN_PASSWORD:-0nL5kLhMIJ1121PYmQb25A}
LOG_LEVEL: ${LOG_LEVEL:-info}
volumes: ["cloudsearch-data:/app/data"]
depends_on: [redis, pansou]
depends_on: [pansou]
networks: [cloudsearch-net]
pansou:
@@ -23,6 +23,7 @@ services:
networks:
cloudsearch-net: { aliases: [pansou] }
# Redis — 仅当系统没有现成 Redis 时才启动
redis:
image: redis:7-alpine
container_name: CloudSearch_Redis
@@ -30,6 +31,7 @@ services:
command: redis-server --appendonly yes --maxmemory 256mb --maxmemory-policy allkeys-lru
volumes: ["redis-data:/data"]
networks: [cloudsearch-net]
profiles: [full]
volumes:
cloudsearch-data: