feat: add install.sh and docker-compose for auto-update
This commit is contained in:
1 parent
c13dfb6df8
commit
37727fa9df
3 files changed
+83
-1
No files matched your search
+57
@@ -0,0 +1,57 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
PORT="${PORT:-7031}"
|
||||
CONTAINER_NAME="${CONTAINER_NAME:-fnos-resmon}"
|
||||
INSTALL_DIR="${INSTALL_DIR:-/vol1/1000/HD1/docker/fnos-resmon}"
|
||||
REPO_URL="https://gitea.88531.cn/jinghui/fnos-resmon.git"
|
||||
|
||||
if ! command -v docker >/dev/null 2>&1; then
|
||||
echo "❌ 未检测到 Docker,请先安装 Docker"; exit 1
|
||||
fi
|
||||
if ! docker compose version >/dev/null 2>&1; then
|
||||
echo "❌ 未检测到 docker compose"; exit 1
|
||||
fi
|
||||
if ! command -v git >/dev/null 2>&1; then
|
||||
echo "❌ 未检测到 git"; exit 1
|
||||
fi
|
||||
|
||||
# 自动探测 docker 根目录
|
||||
if [ -d /vol1/1000/HD1/docker ]; then
|
||||
COMPOSE_ROOT=/vol1/1000/HD1/docker
|
||||
elif [ -d "$HOME/docker" ]; then
|
||||
COMPOSE_ROOT="$HOME/docker"
|
||||
else
|
||||
COMPOSE_ROOT="$(dirname "$INSTALL_DIR")"
|
||||
fi
|
||||
|
||||
if [ -d "$INSTALL_DIR/.git" ]; then
|
||||
echo "🔄 检测到已有安装,执行更新..."
|
||||
cd "$INSTALL_DIR"
|
||||
git fetch origin main
|
||||
git reset --hard origin/main
|
||||
else
|
||||
echo "📥 克隆项目..."
|
||||
mkdir -p "$(dirname "$INSTALL_DIR")"
|
||||
git clone "$REPO_URL" "$INSTALL_DIR"
|
||||
cd "$INSTALL_DIR"
|
||||
fi
|
||||
|
||||
cat > "$INSTALL_DIR/.env" <<EOF
|
||||
PORT=$PORT
|
||||
CONTAINER_NAME=$CONTAINER_NAME
|
||||
COMPOSE_ROOT=$COMPOSE_ROOT
|
||||
EOF
|
||||
|
||||
echo "🐳 启动/更新容器..."
|
||||
docker compose -f "$INSTALL_DIR/docker-compose.yml" --env-file "$INSTALL_DIR/.env" up -d --build
|
||||
|
||||
echo "⏳ 等待服务就绪..."
|
||||
for i in $(seq 1 30); do
|
||||
if curl -s -o /dev/null -w '%{http_code}' "http://127.0.0.1:$PORT" | grep -q 200; then
|
||||
echo "✅ 部署完成!访问 http://<NAS IP>:$PORT"
|
||||
exit 0
|
||||
fi
|
||||
sleep 2
|
||||
done
|
||||
echo "⚠️ 服务可能未就绪,请检查 docker logs"
|
||||
exit 1
|
||||
Reference in new issue
Block a user