mcpField
A
adding-docker

adding-docker

github.com/spencerpaulyクラウド・DevOps868403 回インストール12 週間前に更新
リポジトリ

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 命令を追加します。

コメント