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
@@ -115,7 +115,18 @@ docker run -d --name fnos-resmon -p 7031:7031 --privileged \
|
||||
|
||||
---
|
||||
|
||||
## 🤝 贡献
|
||||
## 🔄 自动更新
|
||||
|
||||
执行仓库根目录的 `install.sh` 即可自动更新(git pull + docker compose up -d --build):
|
||||
|
||||
```bash
|
||||
curl -fsSL https://gitea.88531.cn/jinghui/fnos-resmon/raw/branch/main/install.sh | bash
|
||||
```
|
||||
|
||||
或手动:
|
||||
```bash
|
||||
cd /vol1/1000/HD1/docker/fnos-resmon && git pull && docker compose up -d --build
|
||||
```
|
||||
|
||||
欢迎 Issue 和 PR!
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
version: '3.8'
|
||||
services:
|
||||
fnos-resmon:
|
||||
image: jpccr.ccs.tencentyun.com/jinghui/fnos-resmon:latest
|
||||
container_name: fnos-resmon
|
||||
privileged: true
|
||||
network_mode: host
|
||||
pid: host
|
||||
volumes:
|
||||
- /proc:/host/proc:rw
|
||||
- /sys:/host/sys:ro
|
||||
environment:
|
||||
- PROCFS_PATH=/host/proc
|
||||
restart: unless-stopped
|
||||
+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