Use Cases

Claude Code and Docker Integration Guide: Streamlining Container Development

Claude Code and Docker Integration Guide: Streamlining Container Development. A practical guide with code examples.

Dockerdevelopmentको Claude Code से तेज़ करें

Docker環境のsetupはsettingsfileが多く、初学者には難しい部分もあり है।Claude Code का उपयोग करके、Dockerfileやdocker-compose.ymlのgenerate सेoptimization तकefficiently進められ है।

Dockerfileのgenerateとoptimization

マルチステージbuildのgenerate

> Node.js + TypeScriptProject用のDockerfileをबनाओ。
> 要件:
> - マルチステージbuildで本番imageを軽量化
> - pnpmを使用
> - ヘルスchecksettings
> - non-rootuserで実行
# buildステージ
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

# productionステージ
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のgenerate

development environment全体をdocker-composeでbuildし है।

> निम्नलिखितのserviceを含むdocker-compose.ymlをबनाओ。
> - app: Node.jsアプリ(ホットリロードsupport)
> - db: PostgreSQL 16
> - redis: Redis 7
> - adminer: DBmanagementUI
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のoptimization

> 現在のDockerfileを分析して、build時बीच短縮と
> imagesize削減 के लिएのoptimizationを行って。

Claude Codeはनिम्नलिखितの तरहな改善を提案・実行し है।

  • レイヤーcacheのoptimization(dependenciesのinstallを先に実行)
  • 不要なfileの.dockerignoreへのadd
  • マルチステージbuildへの変換
  • 軽量ベースimageへの変更

container内でのdebug

> docker-compose up で起動したappcontainerが起動に失敗する。
> log confirmして原因を特定・修正して。
# Claude Codeが実行するcommand例
docker-compose logs app --tail 50
docker-compose exec app sh -c "node -e 'console.log(process.env.DATABASE_URL)'"

debugの一般的なテクニックके बारे मेंはdebugテクニックcomplete guideもदेखें。

CI/CDでのDockerutilization

DockerimageのbuildとプッシュをCI/CDにintegrationするpatternはCI/CDpipelineconstruction guideमें बताया गया है。

CLAUDE.mdにDocker関連ruleを記載

## Dockerdevelopmentrule
- developmentにはdocker-compose upを使用する बात
- testはdocker-compose exec app npm testで実行
- 本番Dockerfileはマルチステージbuildを使用
- .dockerignoreをappropriateにsettingsする बात

CLAUDE.mdのलिखने का तरीकाはCLAUDE.mdのलिखने का तरीकाcomplete guideをदेखें。

Summary

Claude CodeとDockerの組み合わせは、環境buildの手बीचを大幅に削減し है।Dockerfileのgenerate、docker-composeのsettings、imageのoptimization तक、一貫してClaude Codeに任せる बातで、applicationdevelopmentに集मेंでき है।

Dockerके details के लिएDockerofficial documentation、Claude Codeके बारे मेंはAnthropicofficial documentationをदेखें。

#Claude Code #Docker #containers #DevOps #infrastructure
मुफ़्त

मुफ़्त PDF: 5 मिनट में Claude Code चीटशीट

बस अपना ईमेल दर्ज करें और हम तुरंत A4 एक-पृष्ठ चीटशीट PDF भेज देंगे।

हम आपकी व्यक्तिगत जानकारी की सुरक्षा करते हैं और स्पैम नहीं भेजते।

Masa

लेखक के बारे में

Masa

Claude Code का गहराई से उपयोग करने वाले इंजीनियर। claudecode-lab.com चलाते हैं, जो 10 भाषाओं में 2,000 से अधिक पेजों वाला टेक मीडिया है।