スキル一覧に戻る
lovedragonball

containerization

by lovedragonball

32🍴 4📅 2026年1月17日
GitHubで見るManusで実行

SKILL.md


name: containerization description: Docker and Kubernetes workflows for containerization. Use for building containers, orchestration, and cloud-native deployments.

🐳 Containerization Skill

Docker Basics

Dockerfile

# Multi-stage build
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
EXPOSE 3000
CMD ["node", "dist/index.js"]

docker-compose.yml

version: '3.8'
services:
  web:
    build: .
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=postgres://db:5432/app
    depends_on:
      - db
  
  db:
    image: postgres:15-alpine
    environment:
      POSTGRES_PASSWORD: secret
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:

Docker Commands

# Build
docker build -t myapp:latest .

# Run
docker run -d -p 3000:3000 --name myapp myapp:latest

# Compose
docker-compose up -d
docker-compose down

# Clean up
docker system prune -a

Kubernetes Basics

Deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp
spec:
  replicas: 3
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
        - name: myapp
          image: myapp:latest
          ports:
            - containerPort: 3000
          resources:
            limits:
              memory: "256Mi"
              cpu: "500m"

Service

apiVersion: v1
kind: Service
metadata:
  name: myapp-service
spec:
  selector:
    app: myapp
  ports:
    - port: 80
      targetPort: 3000
  type: LoadBalancer

K8s Commands

# Apply configs
kubectl apply -f deployment.yaml

# Get resources
kubectl get pods
kubectl get services

# Logs & Debug
kubectl logs pod-name
kubectl exec -it pod-name -- /bin/sh

# Scale
kubectl scale deployment myapp --replicas=5

Best Practices

PracticeDescription
.dockerignoreExclude node_modules, .git
Multi-stageSmaller production images
Non-rootRun as non-root user
Health checksAdd HEALTHCHECK directive
Resource limitsSet CPU/memory limits

Checklist

  • Create Dockerfile (multi-stage)
  • Add .dockerignore
  • Set up docker-compose for dev
  • Configure health checks
  • Create K8s manifests
  • Set resource limits

スコア

総合スコア

50/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です