Docker Compose dengan Claude Code
Pelajari tentang docker compose menggunakan Claude Code. Dilengkapi tips praktis dan contoh kode.
あるpengembangan環境をpembangunan Docker Composeで再現性
Docker Compose 複数 container definisi・manajemen tools 、pengembangan環境 pembangunan 大幅 efisiensi bisa dilakukan.Claude Code service構成 設計 dari Dockerfile optimasiま 、infra構成 juga スムーズ サポート.
構成 full-stackpengembangan環境
Claude Code proyek全体 構成 依頼し.
> Next.js + PostgreSQL + Redis pengembangan環境 Docker Compose dengan pembangunanして。
> hot reloaddukungan、初期データ投入、ヘルスチェック付き dengan 。
# docker-compose.yml
version: "3.9"
services:
app:
build:
context: .
dockerfile: Dockerfile.dev
ports:
- "3000:3000"
volumes:
- .:/app
- /app/node_modules
- /app/.next
environment:
- DATABASE_URL=postgresql://postgres:password@db:5432/myapp
- REDIS_URL=redis://redis:6379
- NODE_ENV=development
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
command: npm run dev
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
- ./docker/init.sql:/docker-entrypoint-initdb.d/init.sql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 5s
retries: 5
mailhog:
image: mailhog/mailhog
ports:
- "1025:1025"
- "8025:8025"
volumes:
postgres_data:
redis_data:
optimasi pengembangan用Dockerfile
hot reload dukungan pengembangan用Dockerfile.
# Dockerfile.dev
FROM node:20-alpine
WORKDIR /app
# パッケージファイルのみ先にコピーしてキャッシュ活用
COPY package.json package-lock.json ./
RUN npm ci
# ソースコードはボリュームマウントで共有
# COPYは不要(docker-compose.ymlで設定済み)
EXPOSE 3000
CMD ["npm", "run", "dev"]
本番用マルチステージbuild
本番deploy用 optimasiされたDockerfile.
# Dockerfile
# ステージ1: 依存関係のインストール
FROM node:20-alpine AS deps
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci --production=false
# ステージ2: ビルド
FROM node:20-alpine AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
RUN npm run build
# ステージ3: 本番イメージ
FROM node:20-alpine AS runner
WORKDIR /app
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
COPY --from=builder /app/public ./public
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
USER nextjs
EXPOSE 3000
ENV PORT 3000
CMD ["node", "server.js"]
構成file分離 環境別
pengembangan・test・本番 pengaturan 分離 pola.
# docker-compose.override.yml(開発環境用、自動読み込み)
services:
app:
volumes:
- .:/app
- /app/node_modules
environment:
- DEBUG=true
- LOG_LEVEL=debug
db:
ports:
- "5432:5432"
adminer:
image: adminer
ports:
- "8080:8080"
depends_on:
- db
# docker-compose.test.yml
services:
app:
build:
context: .
dockerfile: Dockerfile.dev
environment:
- DATABASE_URL=postgresql://postgres:password@db:5432/myapp_test
- NODE_ENV=test
command: npm run test:ci
depends_on:
db:
condition: service_healthy
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: myapp_test
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
tmpfs:
- /var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 3s
timeout: 3s
retries: 10
Makefileでcommandを簡略化
よく使うcommand Makefile ま dan め.
.PHONY: up down build logs db-shell db-migrate db-seed test
up:
docker compose up -d
down:
docker compose down
build:
docker compose build --no-cache
logs:
docker compose logs -f app
db-shell:
docker compose exec db psql -U postgres -d myapp
db-migrate:
docker compose exec app npx prisma migrate dev
db-seed:
docker compose exec app npx prisma db seed
test:
docker compose -f docker-compose.yml -f docker-compose.test.yml run --rm app
clean:
docker compose down -v --remove-orphans
Summary
Docker Compose 使えば、チーム全員 同じpengembangan環境 mudah 再現 bisa dilakukan.Claude Code pemanfaatanすれば、service構成、Dockerfileoptimasi、環境分離 dll. infrapengaturan efisien pembangunandimungkinkan.
container化されたpengembangan環境 さらなるintegrasi Dev Containerpengaturanpanduan 、CI/CDpipeline dan integrasi CI/CDセットアップpanduan silakan lihat.Docker Compose公式dokumen juga konfirmasi おき.
Related Posts
Cara Mempercepat Side Project dengan Claude Code [Dengan Contoh]
Pelajari cara mempercepat project development personal secara drastis menggunakan Claude Code. Dilengkapi contoh nyata dan workflow praktis dari ide hingga deployment.
Cara Mengotomatisasi Refactoring dengan Claude Code
Pelajari cara mengotomatisasi code refactoring secara efisien menggunakan Claude Code. Dilengkapi prompt praktis dan pola refactoring konkret untuk project nyata.
Panduan Lengkap Konfigurasi CORS dengan Claude Code
Pelajari tentang panduan lengkap konfigurasi CORS menggunakan Claude Code. Dilengkapi tips praktis dan contoh kode.