用途
docker-to-sealos 用于把 Docker Compose 文件、安装文档或已有模板更新请求,转换为生产级的 Sealos 模板。它属于本地工件变更类技能,最终产出一个经过校验、可交接给 sealos-deploy 的模板工件。该技能不执行实时云端变更。
主要能力
- 从 Docker Compose 或安装文档中提取应用服务与数据库服务、卷/配置挂载/对象存储需求、端口与依赖、环境变量与密钥用法、启动期校验规则、账户引导模式、多服务 Web 角色、资源限制与健康检查等。
- 推断并规范化应用元数据,包括名称、标题、描述、分类、官方 URL、gitRepo、图标来源、locale/i18n 等。
- 按严格顺序规划资源:Template CR、ObjectStorageBucket(如需要)、数据库资源(ServiceAccount → Role → RoleBinding → Cluster → Job)、应用工作负载资源(ConfigMap/Secret → Deployment/StatefulSet → Service → Ingress)、最后是 App 资源。
- 应用字段级转换规则,包括镜像固定与注解映射、端口/服务/Ingress 转换、环境变量转换与依赖排序、存储转换与命名、服务名到 Kubernetes FQDN 转换、数据库 URL/DSN 环境变量处理、边缘网关规范化、TLS 卸载规范化、多服务 Web 规范化、URL 拓扑、WebSocket Ingress 规范化、StatefulSet 服务标识等。
- 数据库策略:数据库服务必须生成为 KubeBlocks Cluster 资源,不转换为原生 Deployment 或 StatefulSet;PostgreSQL 遵循固定版本与结构要求;MySQL/MongoDB/Redis/Kafka 使用指定模板与密钥命名;按需添加数据库初始化 Job/initContainer。
- 输出 template/<app-name>/index.yaml,并在官方图标可解析时输出 template/<app-name>/logo.<ext>。
- 交付前运行校验器与自测,包括一致性、MUST 覆盖和 quality_gate.py。
使用方式
该技能按生命周期工作流执行:分析输入 → 推断元数据 → 资源规划 → 应用转换规则 → 应用数据库策略 → 生成输出文件 → 输出前校验。每个请求会输出 success、stopped 或 error 状态,并携带来源溯源、工件路径、校验证据和脱敏状态。转换时优先使用 scripts/compose_to_template.py --kompose-mode always 作为确定性转换入口。
适用场景
- 将 Docker Compose 部署的应用迁移为 Sealos 模板。
- 根据官方安装文档生成 Sealos 模板。
- 更新已有 Sealos 模板。
- 需要将数据库服务转换为 KubeBlocks Cluster 资源的场景。
限制
- 不执行实时云端变更,仅产出本地模板工件。
- 公开暴露、破坏性变更、凭据变更和系统工具安装需要显式确认。
- 生成的工件与最终产物不包含密码、令牌、kubeconfig 内容、环境变量值、完整连接字符串或校验器专用密钥。
- 不创建或更新 README 文件;README 编写不在该技能范围内,仅在 index.yaml 中填充 README URL 字段。
- 缺少输入、来源未解析或处于确认边界时,会停止并给出安全下一步,不交接未校验的工件。
- 缺失 registry/MUST 证据会阻止部署。
- 具体收费、价格、平台支持范围等事实暂未提供。