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"]検出したフレームワークに合わせて、ビルド出力ディレクトリ、エントリーコマンド、ベースイメージを調整します。
-
.dockerignoreを作成するnode_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 対応