fix(setup): MongoDB apt 仓库不可用时自动回退到 Docker 安装(适配 noble)
This commit is contained in:
34
setup.sh
34
setup.sh
@@ -13,18 +13,40 @@ echo "安装基础依赖..."
|
||||
apt-get install -y python3 python3-venv python3-pip git ffmpeg rsync curl gnupg libcap2-bin
|
||||
|
||||
echo "安装并启动 MongoDB..."
|
||||
MONGO_READY=false
|
||||
if ! command -v mongod >/dev/null 2>&1; then
|
||||
if [ -n "$CODENAME" ]; then
|
||||
curl -fsSL https://pgp.mongodb.com/server-7.0.asc | gpg --dearmor -o /usr/share/keyrings/mongodb-server-7.0.gpg || true
|
||||
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu ${CODENAME}/mongodb-org/7.0 multiverse" > /etc/apt/sources.list.d/mongodb-org-7.0.list || true
|
||||
apt-get update -y || true
|
||||
apt-get install -y mongodb-org || apt-get install -y mongodb
|
||||
else
|
||||
apt-get install -y mongodb
|
||||
if apt-get update -y; then
|
||||
if apt-get install -y mongodb-org; then
|
||||
MONGO_READY=true
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if [ "$MONGO_READY" = false ]; then
|
||||
echo "APT 仓库不可用,改用 Docker 部署 MongoDB..."
|
||||
apt-get install -y docker.io
|
||||
systemctl enable --now docker || true
|
||||
mkdir -p /var/lib/mongo
|
||||
if ! docker ps -a --format '{{.Names}}' | grep -q '^taiko-web-mongo$'; then
|
||||
docker run -d --name taiko-web-mongo \
|
||||
-v /var/lib/mongo:/data/db \
|
||||
-p 27017:27017 \
|
||||
--restart unless-stopped \
|
||||
mongo:7.0
|
||||
else
|
||||
docker start taiko-web-mongo || true
|
||||
fi
|
||||
MONGO_READY=true
|
||||
fi
|
||||
else
|
||||
MONGO_READY=true
|
||||
fi
|
||||
if [ "$MONGO_READY" = true ]; then
|
||||
systemctl enable mongod || true
|
||||
systemctl restart mongod || systemctl start mongod || true
|
||||
fi
|
||||
systemctl enable mongod || true
|
||||
systemctl restart mongod || systemctl start mongod || true
|
||||
|
||||
echo "安装并启动 Redis..."
|
||||
apt-get install -y redis-server
|
||||
|
||||
Reference in New Issue
Block a user