Claude Code Plugins

Community-maintained marketplace

Feedback

Dockerfileやdocker-compose設定を作成する際に使用。

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name docker
description Dockerfileやdocker-compose設定を作成する際に使用。

Docker

鉄則

イメージは小さく、レイヤーは少なく、セキュリティを意識。

Dockerfile

# ⚠️ 具体的なバージョンを指定
FROM node:20-alpine

WORKDIR /app

# 依存関係を先にコピー(キャッシュ効率化)
COPY package*.json ./
RUN npm ci --only=production

# ソースコードをコピー
COPY . .

# 🚫 rootで実行しない
USER node

EXPOSE 3000
CMD ["node", "dist/index.js"]

マルチステージビルド

# ビルドステージ
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

# 本番ステージ(軽量)
FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
USER node
CMD ["node", "dist/index.js"]

docker-compose

version: '3.8'
services:
  app:
    build: .
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
    depends_on:
      - db
  
  db:
    image: postgres:15-alpine
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}  # ⚠️ .envから

volumes:
  postgres_data:

.dockerignore

node_modules
.git
.env
*.log
dist
coverage

🚫 禁止事項

# ❌ latestタグ
FROM node:latest

# ❌ rootユーザー
USER root

# ❌ シークレットをイメージに含める
COPY .env .