SuperAPI AI 工具集

adding-docker

部署与运维

查看项目

更新于 10-15 11:53

技能介绍

用途

当用户要求对应用进行 dockerize、容器化或添加 Docker 支持时,可使用本技能。它会根据项目实际情况生成一套生产可用的 Docker 相关文件。

主要能力

  1. 检测运行时:检查 package.json、requirements.txt、go.mod、Cargo.toml 等文件,判断项目使用的语言与运行时。
  2. 创建多阶段 Dockerfile:以 Node.js 为例,技能给出的示例包含 base、deps、build、runner 四个阶段,分别用于安装生产依赖、执行构建、运行产物。示例中基础镜像为 node:20-alpine,暴露端口 3000,启动命令为 npm start。技能会针对检测到的框架调整构建输出目录、入口命令和基础镜像。
  3. 创建 .dockerignore:示例内容排除 node_modules、.next、.git、.env*、*.md 等文件。
  4. 创建 docker-compose.yml:当应用存在数据库或 Redis 等依赖时生成。示例包含 app 服务(build 当前目录、映射 3000:3000、使用 .env、依赖 db)和 db 服务(postgres:16-alpine,配置 POSTGRES_DB、POSTGRES_USER、POSTGRES_PASSWORD,并使用 pgdata 卷持久化数据)。
  5. 添加 npm 脚本(可选):示例提供 docker:build(docker build -t myapp .)和 docker:run(docker compose up)。

使用方式

在用户提出容器化需求时触发该技能。技能按上述步骤依次执行:先检测运行时,再生成 Dockerfile、.dockerignore,必要时生成 docker-compose.yml,最后可选添加 npm 脚本。

适用场景

  • 需要为应用添加 Docker 支持或进行容器化。
  • 需要生成生产可用的多阶段 Dockerfile。
  • 应用依赖数据库、Redis 等外部服务,需要 docker-compose 编排。
  • 需要为项目补充 .dockerignore 或便捷的 Docker npm 脚本。

限制与注意事项

  • 建议使用基于 Alpine 的镜像以减小镜像体积。
  • 切勿将 .env 文件复制进镜像,应使用 env_file 或运行时注入。
  • 对于 monorepo,应使用 .dockerignore 排除目标应用不需要的同级包。
  • 生产部署应添加 HEALTHCHECK 指令。
  • 资料未提供该技能的具体安装命令、收费方式、支持平台及实际效果等信息。