关于 adding-docker
指导为应用添加 Docker 支持的技能,涵盖运行时检测、多阶段 Dockerfile、忽略规则、可选的 Compose 配置和脚本,并提醒处理环境文件与部署健康检查。
主要功能
- 01检测应用运行时
- 02创建多阶段 Dockerfile
- 03配置 .dockerignore
- 04为依赖添加 Compose 配置
- 05可选添加 npm 脚本
适用场景
- 01为应用添加 Docker 支持
- 02容器化依赖数据库或 Redis 的应用
- 03构建 Docker 镜像并避免将环境文件放入镜像
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ spencerpauly/ awesome-cursor-skills --skill adding-docker安装后在 Claude Code 中输入/adding-docker确认已加载。
详细介绍
添加 Docker 支持
当用户要求为应用添加 Docker 支持、将应用容器化或使用 Docker 部署应用时,请使用此技能。
步骤
-
检测运行时 — 检查
package.json、requirements.txt、go.mod、Cargo.toml等文件,以确定语言和运行时。 -
创建多阶段
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"]根据检测到的框架进行调整 — 修改构建输出目录、入口命令和基础镜像。
-
创建
.dockerignorenode_modules .next .git .env* *.md -
创建
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: -
添加 npm 脚本(可选)
{ "docker:build": "docker build -t myapp .", "docker:run": "docker compose up" }
注意事项
- 使用基于 Alpine 的镜像以尽可能减小镜像体积。
- 切勿将
.env文件复制到镜像中 — 使用env_file或在运行时注入环境变量。 - 对于单体仓库,使用
.dockerignore排除目标应用不需要的同级软件包。 - 为生产部署添加
HEALTHCHECK指令。
评论
支持 Markdown