mcpField
A
adding-docker

adding-docker

github.com/revitalb-port云与 DevOps057 次安装10 周前更新
代码仓库

关于 adding-docker

Add Docker 是供开发者将应用容器化或添加 Docker 支持的 Agent 技能。它会指导识别项目运行时,并创建 Dockerfile、.dockerignore,以及按需配置 docker-compose.yml。

主要功能

  1. 01识别项目运行时
  2. 02创建多阶段 Dockerfile
  3. 03添加 .dockerignore 文件
  4. 04按需配置 docker-compose.yml
  5. 05提供可选 Docker 脚本建议

适用场景

  1. 01为现有应用添加 Docker 支持
  2. 02识别运行时后将项目容器化

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/revitalb-port/skills-registry-demo --skill adding-docker

安装后在 Claude Code 中输入/adding-docker确认已加载。

附带文件setup.sh

详细介绍

添加 Docker 支持

当用户要求为应用添加 Docker 支持、将应用容器化或使用 Docker 部署应用时,请使用此技能。

步骤

  1. 检测运行时 — 检查 package.json、requirements.txt、go.mod、Cargo.toml 等文件,以确定语言和运行时。

  2. 创建多阶段 Dockerfile

    对于 Node.js(示例):

    FROM node:20-alpine AS base
    
    FROM base AS deps
    WORKDIR /app
    COPY package.json package-lock.json ./
    RUN npm ci --omit=dev
    
    FROM base AS build
    WORKDIR /app
    COPY package.json package-lock.json ./
    RUN npm ci
    COPY . .
    RUN npm run build
    
    FROM base AS runner
    WORKDIR /app
    ENV NODE_ENV=production
    COPY --from=deps /app/node_modules ./node_modules
    COPY --from=build /app/.next ./.next
    COPY --from=build /app/public ./public
    COPY --from=build /app/package.json ./
    EXPOSE 3000
    CMD ["npm", "start"]
    

    根据检测到的框架进行调整 — 修改构建输出目录、入口命令和基础镜像。

  3. 创建 .dockerignore

    node_modules
    .next
    .git
    .env*
    *.md
    
  4. 创建 docker-compose.yml(如果应用有数据库或 Redis 等依赖):

    services:
      app:
        build: .
        ports:
          - "3000:3000"
        env_file: .env
        depends_on:
          - db
      db:
        image: postgres:16-alpine
        environment:
          POSTGRES_DB: app
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: postgres
        volumes:
          - pgdata:/var/lib/postgresql/data
    volumes:
      pgdata:
    
  5. 添加 npm 脚本(可选)

    {
      "docker:build": "docker build -t myapp .",
      "docker:run": "docker compose up"
    }
    

注意事项

  • 使用基于 Alpine 的镜像以尽可能减小镜像体积。
  • 切勿将 .env 文件复制到镜像中 — 使用 env_file 或在运行时注入环境变量。
  • 对于单体仓库,使用 .dockerignore 排除目标应用不需要的同级软件包。
  • 为生产部署添加 HEALTHCHECK 指令。

评论

支持 Markdown