From cd6cab33f1fb01b595f79af24d7959cb18b39190 Mon Sep 17 00:00:00 2001 From: bia Date: Mon, 8 Jun 2026 16:53:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=20git-sync=20=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E9=83=A8=E7=BD=B2=20compose?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/docker-compose.gitsync.yml | 45 ++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 web/docker-compose.gitsync.yml diff --git a/web/docker-compose.gitsync.yml b/web/docker-compose.gitsync.yml new file mode 100644 index 0000000..52bc9ec --- /dev/null +++ b/web/docker-compose.gitsync.yml @@ -0,0 +1,45 @@ +# 极空间 Compose:story 事件编辑器 + 自动 git 同步。 +# 效果:本机 push 到 Gitea 后,约 1 分钟内 NAS 自动拉取最新前端,浏览器刷新即生效。 +# +# 用法:极空间 Docker →「Compose / 项目」→ 新建 → 粘贴本文件 → 改下面标 ← 的 2~3 处 → 部署。 +# 首次部署前:先停止并删除原来的单容器 story-event-web(数据在 /data 目录,删容器不丢)。 +services: + + # ① 同步器:每 60s 把 Gitea 上的最新仓库强制同步到共享目录 /repo + story-gitsync: + image: alpine/git + container_name: story-gitsync + restart: unless-stopped + entrypoint: ["/bin/sh", "-c"] + command: + - > + git config --global --add safe.directory /repo; + cd /repo; + if [ ! -d .git ]; then + git init -q; + git remote add origin https://git.xindiegaming.top/bia/story-edit-web.git; + fi; + while true; do + git fetch -q origin main && git reset --hard -q origin/main; + sleep 60; + done + volumes: + # ← 共享目录:随便选个空目录给同步器用(不存在会自动建)。下面 story-web 要引用同一路径。 + - "/SATA存储11/Docker/story-edit-web-src:/repo" + + # ② 编辑器本体(沿用已导入的镜像 story-event-web:latest) + story-web: + image: story-event-web:latest + container_name: story-event-web + restart: unless-stopped + depends_on: [story-gitsync] + ports: + - "8787:8787" + environment: + STORY_WEB_PASSWORD: "change-me" # ← 改成你的共享口令 + TZ: "Asia/Shanghai" + volumes: + # ← 事件数据:填你原来单容器 /data 对应的 NAS 目录(务必填对,否则看不到旧数据) + - "/SATA存储11/Docker/story-event-web/data:/data" + # 前端静态:直接取自同步器拉下来的仓库子目录(只读)。这条按上面的共享路径,一般不用改。 + - "/SATA存储11/Docker/story-edit-web-src/web/static:/app/web/static:ro"