前言¶
在開發環境中,一個工作區往往包含多個子目錄,每個目錄下都有獨立的 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 項目提供了一個輕量級、集成度高的解決方案。它通過原生側邊欄界面,簡化了容器監控與運維的操作流程。