前言¶
很多業務倉庫能本地跑起來,卻遲遲拿不出一套能復現的容器化交付物:Dockerfile 和實際構建方式對不上、配置寫死在鏡像裏、compose 與文檔各說各話。手寫模板可以起步,但換技術棧或多組件目錄時,Agent 往往只生成單個 Dockerfile,缺少「先分析、再打包、再部署」的固定節奏。
下面介紹 SkillHub 社區 Skill「項目容器化適配」。它在 Agent 側用 SKILL.md 約定六階段工作流,引導模型掃描代碼與文檔,在項目的 deploy/ 目錄輸出打包編排、運行鏡像、配置模板和說明文檔。當前最新版本爲 1.0.3,分類爲 it-ops-security(子類含服務器運維、DevOps),平臺統計下載約 1335 次;騰訊安全與 Keen 審計結論均爲「安全,無風險」,且標籤標明無需 API Key。
這是什麼¶
項目容器化適配是面向「把現有代碼倉庫做成可構建、可運行、可說明的容器方案」的 Agent Skill,採用通用 SKILL.md 格式,由社區用戶 user_3d638e23(命名空間 @indiv-zhudev/projcet-containerd)發佈在 SkillHub。
官方頁面:https://api.skillhub.cn/user_3d638e23/projcet-containerd
Skill 自述能力:自動檢測分析項目代碼和文檔,配置並優化容器化打包方案,生成專用 Dockerfile 與 compose.yaml,並輸出說明文檔,形成適配該項目的容器化部署方案。常見觸發表述包括:容器化、Docker、docker run、docker-compose、Dockerfile、容器部署、鏡像打包、項目容器化、容器化適配、容器化改造等。
1.0.3 版本更新說明強調:流程以 Docker 爲例,但不侷限於 Docker,可自行改造爲其他容器運行時,並有助於後續向 Kubernetes 環境遷移。
核心功能¶
結合 SkillHub 對該 Skill 的質量評估與版本說明,可覈實的能力如下。
六階段工作流¶
- 分析項目代碼:識別語言與目錄結構(含多組件佈局),閱讀 README 與部署/配置類文檔,歸類已有 Dockerfile(打包用、部署用、開發用等),梳理需外部化的配置,並寫入
deploy/analysis-report.md。 - 項目代碼打包:按語言確定製品類型(如 Java JAR、Node 前端
dist/、Go 二進制等),生成deploy/Dockerfile.build與deploy/compose.build.yaml,通過卷將產物導出到deploy/artifacts/,並編寫deploy/BUILD.md。 - 部署用 Dockerfile:在
deploy/Dockerfile中只複製製品、儘量縮小運行時鏡像;默認容器內以 root 運行,僅當項目文檔明確要求時再配置非 root 用戶。 - 配置模板:將需要掛載的配置複製到
deploy/config/,生成deploy/.env及deploy/CONFIG.md。 - 標準部署方案:生成
deploy/docker-run.sh、deploy/compose.yaml(含環境變量、卷掛載、健康檢查等),並提供deploy/QUICKSTART.md。 - 總覽文檔:彙總爲
deploy/CONTAINERIZATION.md,並與 BUILD、DEPLOY、CONFIG 等文檔交叉引用。
語言與製品覆蓋¶
製品類型參考表覆蓋 Java(Maven/Gradle)、Node.js 前後端、Python、Go、Rust、PHP、Ruby 等常見棧,並給出對應的打包產物路徑與運行時基礎鏡像選型思路。評估說明中亦指出:未單獨列出 .NET/C#,多架構構建、鏡像安全掃描等進階話題需自行補充。
交付目錄約定¶
執行完成後,Skill 約定在倉庫下形成類似結構(節選):
deploy/
├── Dockerfile
├── Dockerfile.build
├── compose.yaml
├── compose.build.yaml
├── docker-run.sh
├── .env
├── artifacts/
├── config/
├── CONTAINERIZATION.md
├── QUICKSTART.md
├── BUILD.md
├── DEPLOY.md
├── CONFIG.md
└── analysis-report.md
安裝與啓用¶
SkillHub 推薦通過 skillhub CLI 安裝;安裝說明見 https://skillhub.cn/install/skillhub.md 。要點如下。
1、安裝或檢查 CLI¶
command -v skillhub && skillhub --version
若未安裝,可執行完整安裝(CLI 與默認 Skill):
curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash
僅安裝 CLI 時:
curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash -s -- --cli-only
官方文檔要求 CLI 版本不低於 2026.7.29(可執行 skillhub self-upgrade 升級)。
2、安裝本 Skill 到當前 Agent 的 skills 目錄¶
安裝時必須使用 --dir 指向當前 Agent 識別的 skills 目錄,否則默認落在 ./skills/ 可能無法被加載。
Cursor 示例如下:
skillhub install @indiv-zhudev/projcet-containerd --dir ~/.cursor/skills/
Claude Code 可將 --dir 設爲 ~/.claude/skills/;Codex 可使用 ~/.codex/skills/ 或項目下的 .agents/skills/。其他客戶端路徑以 SkillHub 安裝文檔第四節爲準。
也可在對話中讓 Agent「根據 https://skillhub.cn/install/skillhub.md 安裝 @indiv-zhudev/projcet-containerd」。
3、可選驗籤¶
skillhub verify @indiv-zhudev/projcet-containerd
典型用法¶
在已安裝 Skill 且本機具備 Docker 的前提下,可對 Agent 使用觸發詞,例如:「幫這個項目做容器化適配,生成 deploy 目錄下的 Dockerfile 和 compose。」
Skill 文檔中的快速開始路徑(生成文件後由人在項目根目錄執行)如下。
打包製品:
cd deploy && docker compose -f compose.build.yaml up --build
確認 deploy/artifacts/ 中已有預期產物後,啓動服務:
docker compose up -d
打包編排示例(Skill 內嵌模板邏輯)會將構建上下文指向上級目錄,並把製品導出目錄掛載爲 ./artifacts:
services:
builder:
build:
context: ..
dockerfile: deploy/Dockerfile.build
volumes:
- ./artifacts:/output
部署階段生成的 compose.yaml 通常會引用 env_file: .env、只讀掛載 config/ 下配置文件,並按項目暴露端口與健康檢查。具體鍵名與掛載路徑以階段 1 分析報告爲準,由 Agent 按倉庫實際情況填寫。
適用場景與注意¶
適合誰
- 需要首次爲單體或多目錄 Web/後端項目補齊 Docker 交付物,並希望目錄、文檔、腳本一次成型的團隊。
- 已有一部分 Dockerfile,但希望區分「構建鏡像」與「運行鏡像」、統一
deploy/佈局的維護者。
限制與坑
- 工作流假設 Agent 能讀取倉庫文件並在本機執行
docker compose等命令;無 Docker 或無法聯網拉取基礎鏡像時,生成物需人工執行與校對。 - 平臺質量評估指出:異常與失敗場景說明較少,已有完整 Dockerfile 時是否覆蓋/合併未寫死,多組件微服務與外部依賴(數據庫、Redis 等)的編排需結合
analysis-report.md自行擴展。 - 默認 root 運行容器;生產環境若要求非 root,須在項目文檔中寫明,或事後改 Dockerfile。
- slug 爲
projcet-containerd(拼寫與 container 不同),安裝與搜索時需與命名空間@indiv-zhudev一併使用。
結尾¶
「項目容器化適配」把容器化從「寫一個 Dockerfile」拉成可重複的六步交付:分析、打包、運行鏡像、配置外置、編排腳本與成套文檔,並明確落在 deploy/ 目錄,便於後續接 CI 或 K8s。若要在 Cursor 等環境中試用,可從 SkillHub 官方地址獲取詳情,並按上文命令安裝 @indiv-zhudev/projcet-containerd:
https://api.skillhub.cn/user_3d638e23/projcet-containerd