mcpField
D
devops

devops

github.com/htlin222クラウド・DevOps7842 回インストール3 週間前に更新
リポジトリ

devops について

CI/CD、コンテナ化、デプロイ設定、インフラ自動化を扱う DevOps スキルです。Docker、GitHub Actions、Kubernetes の例とガイダンスを含みます。

主な機能

  1. 01CI/CDパイプラインの設定
  2. 02DockerfileとComposeのガイダンス
  3. 03GitHub Actionsワークフロー
  4. 04Kubernetesデプロイの基礎
  5. 05ビルドのトラブルシューティング
  6. 06インフラ自動化

活用シーン

  1. 01テストとデプロイ手順を含むCI/CDワークフローの作成
  2. 02ローカル開発向けアプリのコンテナ化
  3. 03Kubernetesデプロイの設定
  4. 04ビルド失敗の調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/htlin222/dotfiles --skill devops

インストール後、Claude Code で/devopsを入力して読み込まれたか確認します。

詳細

DevOps

CI/CD パイプライン、コンテナ化、デプロイの自動化。

使用する場面

  • CI/CD パイプラインを設定する
  • Dockerfile を作成する
  • デプロイを設定する
  • ビルドのトラブルシューティングを行う
  • インフラストラクチャを自動化する

Docker

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
USER node
EXPOSE 3000
CMD ["node", "dist/index.js"]
Docker Compose
version: "3.8"
services:
  app:
    build: .
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=postgres://db:5432/app
    depends_on:
      - db
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
      interval: 30s
      timeout: 10s
      retries: 3

  db:
    image: postgres:15-alpine
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=app
      - POSTGRES_PASSWORD_FILE=/run/secrets/db_password
    secrets:
      - db_password

volumes:
  postgres_data:

secrets:
  db_password:
    file: ./secrets/db_password.txt

GitHub Actions

name: CI/CD

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: "npm"
      - run: npm ci
      - run: npm test
      - run: npm run lint

  deploy:
    needs: test
    if: github.ref == 'refs/heads/main'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Deploy
        run: |
          echo "Deploying to production"

Kubernetes の基本

apiVersion: apps/v1
kind: Deployment
metadata:
  name: app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
        - name: app
          image: myapp:latest
          ports:
            - containerPort: 3000
          resources:
            requests:
              memory: "128Mi"
              cpu: "100m"
            limits:
              memory: "256Mi"
              cpu: "200m"
          livenessProbe:
            httpGet:
              path: /health
              port: 3000
            initialDelaySeconds: 10
            periodSeconds: 30

例

入力:「このプロジェクトの CI/CD を設定して」 **アクション:**フレームワークを検出し、GitHub Actions ワークフローを作成して、テストとデプロイの手順を追加します

入力:「このアプリを Docker 化して」 **アクション:**最適化された Dockerfile とローカル開発用の docker-compose を作成し、使用方法を記載します

コメント