📦 Docker Container Rerun All — Docker 容器重新运行所有
v1.0.0顺序检查并可选更新所有已经在长期内存中记录了固定重建命令的docker run容器。当用户...
运行时依赖
安装命令
点击复制技能文档
Docker 容器重跑所有批次检查 记住的 Docker 容器保守地重建。使用此技能来发现每个已经在长期内存中记录了固定的重建命令的容器,然后使用与 docker-container-rerun 相同的镜像 ID 比较工作流程来处理它们。
预条件 仅当以下所有条件都为真时使用此技能: 目标容器最初是使用 docker run 创建的,而不是 docker compose。 每个目标容器已经在 MEMORY.md 中记录了完整的固定重建命令。 同级技能 docker-container-rerun 已安装并在本地可用。 当前机器可以对目标 Docker 守护进程运行 Docker 命令。 用户了解 --apply 可能会在镜像 ID 更改时停止、删除和重建容器。 不要在重建命令缺失、不完整、从内存重构或仅部分已知时使用此技能。
依赖项 此技能有两个显式依赖项: 同级技能:docker-container-rerun 长期内存文件:MEMORY.md
所需同级技能 此技能从同级技能目录调用捆绑脚本:../docker-container-rerun/scripts/update_docker_run_container.py 如果 docker-container-rerun 缺失或损坏,请先修复它,然后再使用此技能。
所需 MEMORY.md 结构 此技能从 MEMORY.md 中的以下节标题解析容器重建命令:
已记住的 Docker 容器固定重建命令
在该节下,每个记住的容器条目应包括: 一个列表项,其粗体标签包含容器名称的反引号 提到 docker run 的描述性文本 包含确切重建命令的围栏 bash 代码块示例条目使用 autoheal:
已记住的 Docker 容器固定重建命令
autoheal:固定 docker run 重建命令
docker run -d \
--name autoheal \
--restart unless-stopped \
-e AUTOHEAL_CONTAINER_LABEL=all \
-e AUTOHEAL_INTERVAL=30 \
-e AUTOHEAL_START_PERIOD=300 \
-e CURL_TIMEOUT=30 \
-v /var/run/docker.sock:/var/run/docker.sock \
willfarrell/autoheal:latest
保持重建命令的精确性。不要从 docker inspect 中重写它,并且不要省略重要的标志。 应用模式 此技能支持两种模式:
非应用模式(默认)
命令:python3 scripts/run_all_docker_reruns.py
行为:
读取 MEMORY.md
动态发现记住的容器
为每个记住的容器拉取最新的镜像
比较当前镜像 ID 与最新镜像 ID
报告哪些容器需要重建
不会停止、删除或重建任何容器
在用户想要进行安全检查之前使用此模式。 应用模式
命令:python3 scripts/run_all_docker_reruns.py --apply
行为:
执行与非应用模式相同的检查
对于镜像 ID 更改的容器,运行同级 docker-container-rerun 应用工作流程
可能会停止、删除和重建匹配的容器
对已经是最新的容器不进行任何更改
仅当用户明确想要进行实际容器重建时使用此模式。 工作流程 读取 MEMORY.md 并定位存储固定重建命令的节 动态从内存中构建工作容器列表。 不要在技能逻辑中硬编码容器名称。 如果用户稍后添加更多记住的重建命令,请自动将其包含在内。 对于每个发现的容器,保留确切的记住的 docker run 命令。 顺序处理容器,从不并行。 使用捆绑脚本运行与 docker-container-rerun 相同的检查/应用工作流程。 使用精致的中文词汇以三组报告结果: 已更新 已经是最新 执行失败 对于每个更新的容器,请包括: 容器名称 镜像引用 镜像标签 之前的镜像 ID 最新的镜像 ID 版本提示(当镜像标签包含有意义的版本字符串时) 更喜欢一个 Telegram 友好的中文摘要,而不是直接将原始 JSON 转储给用户。
安全规则 将 MEMORY.md 视为容器列表和固定重建命令的真实来源。 不要从 docker inspect 中重构缺失的标志。 不要默默地编辑记住的 docker run 命令。 顺序运行容器,而不是并行。 如果内存解析对于某个容器失败,请将其放入失败组,然后继续下一个。 如果用户只要求创建技能,请不要执行更新。 当实际重建被请求时,请显式使用 --apply。
捆绑脚本 使用技能目录中的捆绑脚本进行确定性批量执行:
python3 scripts/run_all_docker_reruns.py
仅当用户明确想要重建需要更新的容器时,添加 --apply:
python3 scripts/run_all_docker_reruns.py --apply
脚本将:
解析 MEMORY.md 中的记住容器
动态发现当前容器集
为每个容器调用一次捆绑的 docker-container-rerun 脚本
保持执行顺序
发出包含发现的容器、原始的每个容器结果和组的 JSON。