前言¶
在开发环境中,一个工作区往往包含多个子目录,每个目录下都有独立的 compose.yaml。传统的容器查看器难以清晰地展示这种多项目结构,或者无法直接在侧边栏中进行操作。
DeepSeek Harness (DSH) 插件 dsh-compose-panel 将 Docker Compose 项目直接集成到 Harness 的原生右侧边栏中。它按项目目录分组,提供容器的实时状态、启动/停止/重启操作以及流式日志查看功能。
插件信息¶
- 名称:
dsh-compose-panel - 描述: DeepSeek Harness 插件:Docker Compose 项目、容器控制和实时日志。
- 所有者: yizhixiaokong
- 许可证: MIT
核心功能¶
- 按目录分组: 每个项目目录对应一个组。容器状态由目录决定,不会因为
-p参数、COMPOSE_PROJECT_NAME环境变量或.env文件导致不同堆栈被错误合并。 - 多来源发现: 显示三种状态的项目。包括正在运行的容器、Docker 已知但未启动的项目,以及从未被拉起的
compose.yaml文件。 - 工作区作用域: 仅列出位于 DSH 工作区目录内的项目。属于工作区相对路径的项目会被归类到最长匹配的 workspace 下,其他项目会被计数但不隐藏。
- 交互式操作: 支持悬停操作。鼠标悬停在项目标题上可对整个项目执行
up -d/restart/stop;悬停在单个容器行上则对该服务执行相同操作。 - 实时日志: 点击容器行或项目标题,会在新标签页中打开该目标的流式日志查看器。
- 静默刷新: 在空闲状态下每 45 秒刷新一次列表,在有容器启动时每 8 秒刷新一次。刷新过程不会丢失滚动位置、折叠状态或选中项。
- 原生样式: 使用 Harness 的主题令牌,支持亮色/暗色模式及强调色。
安装与启用¶
使用官方插件命令进行安装。安装后需重启 dsh web 以加载客户端代码。
dsh plugin --profile web add "github:yizhixiaokong/dsh-compose-panel"
如需从本地代码安装(方便调试):
git clone https://github.com/yizhixiaokong/dsh-compose-panel.git
cd dsh-compose-panel
dsh plugin --profile web add "$PWD"
如需更新:
# 从 npm 安装
dsh plugin --profile web add dsh-compose-panel@latest
# 从 GitHub 安装(需指定 tag 以锁定版本)
dsh plugin --profile web add "github:yizhixiaokong/dsh-compose-panel#v0.1.3"
如需移除:
dsh plugin --profile web remove dsh-compose-panel
典型用法¶
- 在 Harness 的 Guide 页面打开右侧边栏,选择 🐳 容器 胶囊。
- 每个工作区是一个分区,每个项目目录是一个可折叠的组,组名显示路径,右侧显示该组的容器聚合状态。
- 鼠标悬停在项目标题上,状态单元格会变为操作按钮(启动/停止/重启)。鼠标悬停在具体容器行上,则对该服务进行操作。
- 点击容器行或项目标题,打开该目标的流式日志标签页。
适用场景与注意事项¶
-
环境要求:
- DSH 版本需满足
>= 0.1.5-rc.1。 - 必须使用带有
webprofile 的 DSH。 - 主机环境需安装 Docker CLI 并在 PATH 中(插件作为子进程调用
docker ps和docker compose ls)。 - 主机需为 POSIX 系统(Windows 未测试)。
- 必须使用 Docker Compose v2 插件(命令为
docker compose,而非docker-compose)。 - 必须配置了 DSH 工作区。
- DSH 版本需满足
-
开发注意:
- 客户端代码在主机启动时被基准化。在运行中的 Harness 中直接编辑
lib/client.js不会生效,必须重启dsh web。
- 客户端代码在主机启动时被基准化。在运行中的 Harness 中直接编辑
总结¶
dsh-compose-panel 为在 DSH 环境下管理多层级 Docker Compose 项目提供了一个轻量级、集成度高的解决方案。它通过原生侧边栏界面,简化了容器监控与运维的操作流程。