前言¶
很多业务仓库能本地跑起来,却迟迟拿不出一套能复现的容器化交付物: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