Use Cases

Claude Code and Docker Integration Guide: Streamlining Container Development

Claude Code and Docker Integration Guide: Streamlining Container Development. 附代码示例的实战指南。

Docker开发を通过 Claude Code 加速

Docker環境のセットアップは配置文件が多く、初学者には難しい部分もあります。借助 Claude Code,Dockerfileやdocker-compose.ymlの生成から优化まで高效地進められます。

Dockerfileの生成と优化

マルチステージ构建の生成

> Node.js + TypeScript项目用のDockerfile创建。
> 要件:
> - マルチステージ构建で本番イメージを軽量化
> - pnpmを使用
> - ヘルスチェック配置
> - non-root用户で実行
# ビルドステージ
FROM node:20-slim AS builder
RUN corepack enable && corepack prepare pnpm@latest --activate
WORKDIR /app

COPY package.json pnpm-lock.yaml ./
RUN pnpm install --frozen-lockfile

COPY . .
RUN pnpm build

# プロダクションステージ
FROM node:20-slim AS runner
RUN corepack enable && corepack prepare pnpm@latest --activate

RUN addgroup --system --gid 1001 appgroup && \
    adduser --system --uid 1001 appuser

WORKDIR /app

COPY --from=builder --chown=appuser:appgroup /app/dist ./dist
COPY --from=builder --chown=appuser:appgroup /app/package.json ./
COPY --from=builder --chown=appuser:appgroup /app/pnpm-lock.yaml ./

RUN pnpm install --frozen-lockfile --prod

USER appuser

HEALTHCHECK --interval=30s --timeout=3s --start-period=5s \
  CMD wget --no-verbose --tries=1 --spider http://localhost:3000/health || exit 1

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

docker-compose.ymlの生成

开发环境全体をdocker-composeで构建します。

> 以下サービスを含むdocker-compose.yml创建。
> - app: Node.js应用(热重载支持)
> - db: PostgreSQL 16
> - redis: Redis 7
> - adminer: DB管理UI
version: "3.9"

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile.dev
    ports:
      - "3000:3000"
    volumes:
      - .:/app
      - /app/node_modules
    environment:
      - DATABASE_URL=postgresql://postgres:password@db:5432/myapp
      - REDIS_URL=redis://redis:6379
    depends_on:
      db:
        condition: service_healthy
      redis:
        condition: service_started

  db:
    image: postgres:16-alpine
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: password
      POSTGRES_DB: myapp
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 5s
      timeout: 5s
      retries: 5

  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"

  adminer:
    image: adminer
    ports:
      - "8080:8080"

volumes:
  postgres_data:

既存Dockerfileの优化

> 現在のDockerfileを分析して、构建时间短縮と
> イメージサイズ削減のための优化を行って。

Claude Code 以下这样的改善を提案・実行します。

  • レイヤー缓存の优化(依存関係の安装を先に実行)
  • 不要な文件の.dockerignoreへの添加
  • マルチステージ构建への変換
  • 軽量ベースイメージへの更改

容器内での调试

> docker-compose up で起動したapp容器が起動に失败する。
> 日志を确认して原因を特定・修正して。
# Claude Codeが実行するコマンド例
docker-compose logs app --tail 50
docker-compose exec app sh -c "node -e 'console.log(process.env.DATABASE_URL)'"

调试の常见的テクニック相关内容请参阅调试テクニック完全指南也请参阅。

CI/CDでのDocker活用

Dockerイメージの构建とプッシュをCI/CDに集成するパターンはCI/CD流水线构建指南で解説しています。

CLAUDE.mdにDocker関連ルールを記載

## Docker開発ルール
- 開発にはdocker-compose upを使用すること
- テストはdocker-compose exec app npm testで実行
- 本番Dockerfileはマルチステージビルドを使用
- .dockerignoreを適切に設定すること

CLAUDE.mdの書き方はCLAUDE.mdの書き方完全指南

总结

与 Claude CodeDockerの組み合わせは、環境构建の手間を大幅に削減します。Dockerfileの生成、docker-composeの配置、イメージの优化まで、一貫して让 Claude Code任せることで、应用开发に集中可以。

Docker的详细信息请参阅Docker官方文档、让 Claude CodeついてはAnthropic官方文档

#Claude Code #Docker #containers #DevOps #infrastructure