mcpField
A
adding-docker

adding-docker

github.com/spencerpauly云与 DevOps868403 次安装13 周前更新
代码仓库

关于 adding-docker

指导为应用添加 Docker 支持的技能,涵盖运行时检测、多阶段 Dockerfile、忽略规则、可选的 Compose 配置和脚本,并提醒处理环境文件与部署健康检查。

主要功能

  1. 01检测应用运行时
  2. 02创建多阶段 Dockerfile
  3. 03配置 .dockerignore
  4. 04为依赖添加 Compose 配置
  5. 05可选添加 npm 脚本

适用场景

  1. 01为应用添加 Docker 支持
  2. 02容器化依赖数据库或 Redis 的应用
  3. 03构建 Docker 镜像并避免将环境文件放入镜像

安装

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

$npx skills add https://github.com/spencerpauly/awesome-cursor-skills --skill adding-docker

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

详细介绍

添加 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