SuperAPI AI 工具集

dockerize-and-deploy

部署与运维

查看项目

更新于 10-16 02:08

技能介绍

Dockerize and Deploy 是一个面向代码仓库的容器化与部署配置生成技能,核心目标是把一个仓库逐步转化为可部署的容器化方案,并且一次只推进一个阶段。

用途 该技能用于将应用容器化、为项目添加 Docker 支持、编写部署配置。它强调先审计再动手:在写任何文件之前,先识别运行时、服务、数据存储、构建步骤、已有的 Docker 文件以及环境变量,并据此提出分阶段方案。

主要能力

  1. Dockerfile:生成多阶段构建文件。builder 阶段负责安装与编译,runtime 阶段只复制构建产物;使用非 root 用户运行;基础镜像固定版本(例如 node:20.11-alpine);通过 .dockerignore 排除 node_modules、.env、.git。
  2. docker-compose:生成开发栈配置,包含源码挂载以支持热重载、调试端口和命名卷。
  3. 生产 compose(docker-compose.prod.yml):不挂载源码,设置 restart: unless-stopped、健康检查、显式卷以及 mem_limit/cpus 资源限制。
  4. 预检脚本:将 scripts/preflight.sh 复制到项目中,用于校验环境变量、Docker 可用性、端口冲突、数据库可达性,并执行一次 dry-run 构建。运行方式为 bash scripts/preflight.sh。
  5. 部署脚本:scripts/deploy.sh 的执行顺序为:运行 preflight.sh(失败则中止)→ 拉取/构建镜像 → 运行迁移 → 滚动重启 → 健康检查 → 打印状态。 对于简单仓库,可以合并或跳过某些阶段。

使用方式 按阶段推进,并在每个阶段后进行验证:

  • docker build -t app:test . 用于确认 Dockerfile 能编译通过;
  • docker compose config 用于确认 compose 文件是合法 YAML;
  • docker compose up -d && docker compose ps 用于确认服务能健康启动;
  • bash scripts/preflight.sh 用于确认预检通过。

适用场景 适用于需要为应用添加 Docker 支持、编写部署配置、将现有仓库容器化的开发与运维场景,尤其适合希望获得开发与生产两套 compose 配置以及部署前检查流程的项目。

限制与约束 该技能包含明确的护栏:不得在 Docker 或 compose 文件中嵌入密钥;容器必须始终以非 root 用户运行;生产环境不得使用 latest 镜像标签,必须固定版本;数据库卷只能使用命名卷,不得使用宿主机绑定挂载;如果没有 .env.example,需要先创建一个。

参考资料 REFERENCE.md 提供卷与健康检查模式、资源限制、按运行时分类的多阶段示例以及滚动部署策略。

其他信息 该技能的官方文本暂未提供。