关联主题::
同级:: 2025-12-04_星期四
下一级::

2025-12-04_星期四进行升级:

一、想法

  1. 每20秒从cflow获取数据生成一份新的JSON
  2. 本地保留两份JSON:
  • 一份是新生成的(current)
  • 一份是已经推送到Git仓库的(last_pushed)
  1. 比较这两份JSON:
  • 如果不一样,立即推送新的JSON到Git仓库
  • 推送成功后,新的JSON变成”已推送的JSON”
  • 如果一样,不做任何操作

当前问题:

  • Docker容器里的代码和Git仓库不一致
  • 拉取时有未提交的更改导致失败
  • 推送时因为远程有新提交导致失败

解决方案:

  1. 修改同步脚本的逻辑
  2. 重新构建Docker镜像
  3. 在NAS上重新部署

需求:

1. 每20秒从CFlow获取数据,生成一份新的JSON
2. 本地保留两份JSON:
    - current_json:刚从CFlow获取的最新数据
    - last_pushed_json:上次成功推送到Git仓库的数据
3. 比较逻辑:
    - 如果 current_json ≠ last_pushed_json,立即推送到Git仓库
    - 推送成功后,current_json 变成新的 last_pushed_json
    - 如果相同,不做任何操作(不提交、不推送)

这样可以避免频繁无意义的提交,只有数据真正变化时才推送。

解决思路:

  1. 修改同步脚本逻辑
    让我修改 sync_to_github.py:

  2. nas执行如下操作:


  # 1. 停止当前容器
  docker stop cflow-ssn-sync

  # 2. 删除旧容器
  docker rm cflow-ssn-sync

  # 3. 进入项目目录
   cd /volume2/docker/cflow-ssn/cflow-ssn-main/cflow-ssn

  # 4. 拉取最新代码
  git fetch origin
  git reset --hard origin/main

  # 5. 重新构建镜像
  docker compose build --no-cache 

  # 6. 启动新容器
  docker compose up -d

  # 7. 查看日志确认正常运行
  docker logs -f cflow-ssn-sync