Docker配置智能生成
下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/my-ai--docker-peizhi-shengcheng.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @my-ai/docker-peizhi-shengcheng。Docker 配置生成工具:说一句项目技术栈(Python/Node/Java/Go/前端)或贴一下项目结构,自动生成可直接使用的 Dockerfile、docker-compose.yml 编排、部署步骤和常见坑提醒。专为第一次容器化、不想啃 Docker 文档的开发者设计,复制粘贴就能跑。适合后端开发者、前端工程师、学生、需要快速容器化的项目负责人。
按次付费 ¥0.5/次,微信支付。适用:docker-compose配置、docker配置生成、docker部署配置、容器配置生成、容器配置。触发词:Docker配置、Dockerfile、docker-compose、容器化、容器部署、Docker部署、Dockerfile生成、compose编排、部署配置。
阅读全文 (展开查看完整说明)
概述
这个技能能帮你什么
把"第一次容器化、不知道 Dockerfile 怎么写"变成"说一句技术栈,10 秒拿到复制即用的 Docker 配置"。
说一句项目情况(如"Python Flask 项目,用 MySQL")或贴一下项目结构,自动生成:
- Dockerfile:可直接构建的镜像文件
- docker-compose.yml:多服务编排(应用+数据库+依赖)
- 部署步骤:从构建到运行的完整命令
- 常见坑提醒:新手最容易踩的坑,提前避开
开始之前
提供以下信息(越具体越准):
- 技术栈(必填):语言和框架,如"Python Flask""Node Express""Java Spring Boot""Go""Vue 前端"
- 依赖服务(可选):MySQL / PostgreSQL / Redis / Nginx / 消息队列等
- 项目结构(可选):贴一下目录结构(
ls -R或关键文件列表) - 特殊需求(可选):需要挂载数据卷、暴露端口、多阶段构建等
你会拿到什么
- Dockerfile:可直接构建,含必要优化(多阶段构建/缓存利用/非 root 用户)
- docker-compose.yml:应用+数据库一键编排,数据卷、网络、环境变量配好
- 部署步骤:
docker build→docker compose up -d→ 验证访问,三步走 - 常见坑提醒:新手高频踩坑点(端口占用/时区/数据卷权限/镜像源)
使用示例
示例 1:Python Flask + MySQL
用户:"Python Flask 项目,用 MySQL,端口 5000"
输出:Dockerfile(python:3.11-slim + requirements.txt + 非 root)+ compose(app + mysql,数据卷 + 环境变量)+ 部署三步 + 坑提醒(MySQL 首次启动初始化/时区/端口冲突)
示例 2:Node Express
用户:"Node.js Express 项目,端口 3000,连 Redis"
输出:Dockerfile(node:20-alpine 多阶段构建)+ compose(app + redis)+ 部署三步 + 坑提醒(node_modules 缓存/时区/alpine 兼容性)
示例 3:Java Spring Boot + PostgreSQL
用户:"Java Spring Boot 项目,Maven 构建,连 PostgreSQL"
输出:Dockerfile(maven 构建阶段 + eclipse-temurin 运行阶段,多阶段构建)+ compose(app + postgres)+ 部署三步 + 坑提醒(构建缓存/数据库连接等待/时区)
注意事项
- 一个项目一份配置:一次处理一个项目,聚焦清晰
- 按最佳实践生成:默认给优化版(多阶段构建/非 root/缓存利用),不是"能跑就行"的偷懒版
- 版本说明:生成时标注推荐基础镜像版本,按需可换
- 适合/不适合:
- ✅ 适合:新项目容器化、本地开发环境、学习 Docker、快速部署 demo
- ❌ 不适合:生产级复杂微服务编排(K8s)、已有 Dockerfile 的深度调优、需要对接 CI/CD 流水线的完整配置
隐私与安全
- 你的项目信息仅用于本次生成,不存储、不泄露
- 唯一外送:仅完成付费验证时,将用户确认过的最小必要字段(订单验证所需的输入摘要)发送至支付网关(仅用于订单生成与支付状态校验);发送前向用户明示域名、字段与用途并取得确认,用户未同意不发送
- 除付费验证外:不联网、不读取外部数据、不调用任何外部服务
付费调用执行协议(Agent 执行层)
本技能为付费技能(X402 协议),内容由统一支付网关(pay-gateway)承载。
本协议对 Agent 可见,支付细节由 Agent 向用户透明说明(Agent 代为引导支付)。
支付透明原则:发起支付前,Agent 必须向用户明示服务价格(¥0.5)、收款方(技能开发者/微信支付商户)与支付步骤,获得用户明确同意后再引导支付;用户未同意不得发起支付。
时长说明:本服务生成需要约 1 分钟(不是秒出),中途可能返回一次「生成中」(HTTP 504,属正常过程)。发起调用前先告诉用户"Docker配置智能生成需要约 1 分钟生成"。
前置检查:当前智能体是否支持微信 AI 支付(发起下单前必须最先执行)
发起下单前,先检查你的可用工具列表中是否存在名称包含 weixinpay_ 的工具(如 mcp__weixinpay__weixinpay_register,工具名带前缀也算;存在任意一个即视为支持)。
只以你的工具列表为证据,本文档中提到的工具名不算;无法确认时按「不支持」处理。
- 支持:按下方「支付方式:平台自适应」继续本 Skill 的流程。本项检查是公开、可告知的:无需专门向用户宣布这一检查,但用户若问起请如实说明检查结论。
- 不支持:终止流程且不要发起下单(不调用本技能网关接口、不生成订单)。只向用户说明结论与解决办法(结论透明、过程从简:不必展开你如何检查,也避免把内部工具名抛给用户造成困惑),按智能体类型提示:
- 合作智能体(如 WorkBuddy):请升级智能体到最新版本后重试。
- 开放智能体(如 OpenClaw / DeepSeek Harness):请根据 https://skillhub.cn/install/skillhub.md,安装 @tencent-adm/weixinpay-installer。
- 无法判断类型:请升级智能体或安装微信 AI 支付插件后重试。
判定条件不可改写:必须「按子串
weixinpay_匹配 + 存在任意一个即可」,不要检查某个特定完整工具名(如weixinpay_pay),否则在不支持的环境里会把"支持"误判成"不支持"。
支付方式:平台自适应
本技能支付采用平台自适应策略——不预设走哪条流程,收到网关 402 后按实际情况处理(前提:上方「前置检查」判定为「支持」;判定为「不支持」时按前置检查终止,不进入本步骤):
- 先看平台是否已自动拉起支付:在已接入自动支付的平台(如 WorkBuddy),网关返回 402 后平台会自动弹出支付卡片并完成支付。若系统提示"支付已由系统发起/支付成功",不要调用任何支付工具,直接进入履约重试(见下)。
- 平台未自动支付时,默认用「二维码扫码」:把 402 响应体中的
code_url渲染成二维码让用户微信扫码支付(最低门槛,任何平台可用)。 - 仅在平台未自动拉起、二维码也不可用、且用户明确要求时,若你的工具列表中存在
weixinpay_工具,才考虑调用weixinpay_pay(传入WeixinPay-Required的 payment_code)。
⚠️ 工具存在 ≠ 需要你调用:在已接入自动支付的平台,402 返回后支付由系统代办,不要主动调用 weixinpay_pay(会被系统拒绝,并可能让你误判"还没付款"而重复引导用户付费)。
网关服务
- BASE_URL:
https://phantom-ai.cn - 调用接口:
POST {BASE_URL}/api/v1/skill/docker-peizhi-shengcheng/invoke
请求体
{
"prompt": "用户输入(用户确认后发送)",
"meta": {}
}履约流程(支付成功后)
- 首次调用:
POST /api/v1/skill/docker-peizhi-shengcheng/invoke,不携带X-Out-Trade-No。- 网关返回 HTTP 402,响应体与响应头均携带
X-Out-Trade-No(订单号)与WeixinPay-Required(值等于WeixinPay.payment_code);code_url(微信 Native 支付二维码链接)在响应体中。取值读响应体即可(字段更全)。
- 网关返回 HTTP 402,响应体与响应头均携带
- 支付:按「支付方式:平台自适应」处理(平台自动支付 / 二维码扫码 / 兜底 weixinpay_pay)。
- 二维码渲染:优先用本地二维码能力(如 Python
qrcode库 / 平台图片生成工具);无本地能力时用公网服务https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=<urlencode(code_url)>;若本地与公网二维码能力均不可用:直接把code_url原样展示给用户,并说明"请在微信中打开此链接完成支付",不要把支付流程卡在二维码渲染上。 - ⚠️
code_url是weixin://支付链接,必须渲染成二维码让用户用微信「扫一扫」支付,不要当作普通网页链接直接发给用户。
- 二维码渲染:优先用本地二维码能力(如 Python
- 重试履约(504 是正常过程,不是失败):支付完成后,携带响应体中的
X-Out-Trade-No重新请求同一接口(同一请求体)。- 生成需要约 1 分钟,超过网关 45 秒等待窗口会返回 HTTP 504(响应体
{"ok":false,"retryable":true,"user_message":"正在生成,请稍等片刻,已保留您的订单,不会重复扣费。"})。继续用同一个X-Out-Trade-No重试即可,通常 1–2 次内返回 200。 - 已支付且生成完成 → 返回
{"ok": true, "skill_id": "docker-peizhi-shengcheng", "result": "可直接使用的 Docker 配置:Dockerfile + docker-compose.yml 编排 + 部署步骤 + 常见坑提醒"} - 未支付 → 再次返回 402(继续提示用户支付;同一订单重复请求是幂等的,不会重复扣费)。
- 生成需要约 1 分钟,超过网关 45 秒等待窗口会返回 HTTP 504(响应体
- 交付内容:把
result中的内容按技能要求的格式直接交付给用户。
异常处理
- 生成中(HTTP 504 /
ok:false+retryable:true):内容正在生成、订单已保留、不会重复扣费。用同一个X-Out-Trade-No重试,间隔 5–10 秒,最多重试 3 次;3 次仍未拿到结果时,告知用户「内容仍在生成中,订单已保留,稍后可继续获取」——不要重新下单,不要再次引导用户支付;用平实语言说明进度即可(如「内容仍在生成中,订单已保留」),不要下"失败"的结论。 - 未支付/支付中断:再次返回 402 时,说明支付尚未完成,引导用户继续支付(平台自动支付/扫码/兜底 AI 支付),不重复下单。
- 长时间重试后仍无结果:订单已保留、不会重复扣费。请保留订单号、不要重新下单,稍后可用同一订单继续获取。若用户要求退款:退款为人工处理,向用户说明「请提供订单号,我们将在 1–3 个工作日内原路退回」——不要承诺"已自动退款"(网关无退款接口)。
- 重复请求:订单已支付后重复请求同一
X-Out-Trade-No是幂等的,可安全重试;不要重复向用户收费或重复下单。 - 缓存命中:同一订单同一内容再次请求会秒回(
cached:true),内容与首次一致,属正常缓存,不要重复引导付费。
注意事项
- 402 / 504 都是正常支付流程,不是错误。请用平实语言向用户说明当前进度(如「正在等待支付完成」「内容正在生成中」),不要下"出错了/失败了"的结论。
- 网关生成的内容已内置技能方法论与合规要求,Agent 无需重复加工。
- 价格:¥0.5/次(price_fen=50)