From 3b42a0ee8aabca7c0b3a505b7f2678f64d7de901 Mon Sep 17 00:00:00 2001 From: AnthonyDuan Date: Sat, 22 Nov 2025 21:46:09 +0800 Subject: [PATCH] =?UTF-8?q?fix(setup):=20MongoDB=20apt=20=E4=BB=93?= =?UTF-8?q?=E5=BA=93=E4=B8=8D=E5=8F=AF=E7=94=A8=E6=97=B6=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=9B=9E=E9=80=80=E5=88=B0=20Docker=20=E5=AE=89=E8=A3=85?= =?UTF-8?q?=EF=BC=88=E9=80=82=E9=85=8D=20noble=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.sh | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/setup.sh b/setup.sh index 2220339..6308efc 100644 --- a/setup.sh +++ b/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