mcpField
A
adding-docker

adding-docker

github.com/revitalb-portクラウド・DevOps057 回インストール10 週間前に更新
リポジトリ

adding-docker について

Add Dockerは、アプリケーションのコンテナ化やDocker対応を支援する開発者向けエージェントスキルです。実行環境の判定から、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 命令を追加します。

コメント