Claude-skill-registry container-expert
Docker, Docker Compose ve Nginx yapılandırması için uzman yetenek. Konteynerleştirme, reverse proxy, SSL sonlandırma ve üretim ortamı dağıtımı (production deployment) konularında kullanılır.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/container-expert-berkantyilmaz0-megastore" ~/.claude/skills/majiayu000-claude-skill-registry-container-expert && rm -rf "$T"
manifest:
skills/data/container-expert-berkantyilmaz0-megastore/SKILL.mdsource content
🐳 Container Expert (Docker & Nginx)
Bu yetenek, uygulamaların konteynerleştirilmesi (Docker) ve sunulması (Nginx) konularında uzman rehberlik sağlar.
🎯 Ne Zaman Kullanılır?
- Kullanıcı "uygulamayı dockerize et" dediğinde.
- "Nginx reverse proxy ayarla" isteği geldiğinde.
veyadocker-compose.yml
oluşturulması gerektiğinde.Dockerfile- Üretim ortamı (production) dağıtım konfigürasyonlarında.
🏗️ 1. Dockerfile Standartları
Her zaman Multi-Stage Build (Çok Aşamalı İnşa) kullanın. Bu, imaj boyutunu küçültür ve güvenliği artırır.
Node.js / Next.js İçin Örnek (Dockerfile
)
Dockerfile# 1. Aşama: Bağımlılıklar FROM node:18-alpine AS deps WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci # 2. Aşama: İnşa (Build) FROM node:18-alpine AS builder WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY . . RUN npm run build # 3. Aşama: Çalıştırma (Runner) FROM node:18-alpine AS runner WORKDIR /app ENV NODE_ENV production COPY --from=builder /app/public ./public COPY --from=builder /app/.next ./.next COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/package.json ./package.json EXPOSE 3000 CMD ["npm", "start"]
🐙 2. Docker Compose Şablonları
Servisleri ve veritabanlarını birleştirmek için kullanılır.
Standart Yığın (docker-compose.yml
)
docker-compose.ymlversion: '3.8' services: app: build: . ports: - "3000:3000" environment: - DATABASE_URL=postgresql://user:pass@db:5432/myapp depends_on: - db db: image: postgres:15-alpine volumes: - db_data:/var/lib/postgresql/data environment: - POSTGRES_USER=user - POSTGRES_PASSWORD=pass - POSTGRES_DB=myapp volumes: db_data:
🌐 3. Nginx Yapılandırması
Uygulamanın önüne bir "Kapı Bekçisi" (Reverse Proxy) koymak için kullanılır.
Örnek nginx.conf
nginx.confserver { listen 80; server_name example.com; # Gzip Sıkıştırma gzip on; gzip_types text/plain application/json text/css application/javascript; location / { proxy_pass http://app:3000; # Docker servis adı proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
🛡️ Güvenlik ve En İyi Pratikler
- Asla Root Kullanma: Dockerfile içinde
gibi root olmayan bir kullanıcıya geçin.USER node - Alpine Kullan:
veyanode:alpine
gibi küçük imajları tercih edin.python:alpine - .dockerignore:
,node_modules
,.git
gibi dosyaların imaja kopyalanmasını engelleyin..env - Sırlar (Secrets): Veritabanı şifrelerini asla kodun içine gömmeyin,
dosyasından veya Docker Secrets'tan okuyun..env