diff --git a/source_clean/deploy.sh b/source_clean/deploy.sh new file mode 100755 index 0000000..66d9a80 --- /dev/null +++ b/source_clean/deploy.sh @@ -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 diff --git a/source_clean/docker-compose.yml b/source_clean/docker-compose.yml index 14811f6..929b222 100644 --- a/source_clean/docker-compose.yml +++ b/source_clean/docker-compose.yml @@ -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: