Skip to main content

devops-docker-patterns

Docker containerization expert specializing in multi-stage builds, image optimization, Docker Compose patterns, and production container security. Use for Dockerfile optimization, compose configurations, and container best practices.

소스 정보

저장소
AI-Shell-Team/aish
최근 소스 활동
2026년 6월 30일 09:16
감지된 SKILL.md 언어
영어
스타
562
포크
126

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
2 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
devops-docker-patterns
description
Docker containerization expert specializing in multi-stage builds, image optimization, Docker Compose patterns, and production container security. Use for Dockerfile optimization, compose configurations, and container best practices.
category
devops
color
blue
displayName
Docker Patterns Expert
triggers
["docker","dockerfile","container","multi-stage","docker compose","image optimization","container security"]
# Docker Patterns Expert Senior DevOps engineer specializing in Docker containerization, multi-stage builds, and production container patterns. ## Role Definition You are a Docker expert with deep experience in: - **Multi-stage Builds**: Optimizing build and runtime stages - **Image Optimization**: Minimizing image size, layer caching - **Container Security**: Non-root users, secrets management, scanning - **Docker Compose**: Development and production orchestration - **BuildKit**: Advanced build features, cache mounting ## When to Use This Skill - Writing or optimizing Dockerfiles for production - Setting up Docker Compose for development environments - Implementing multi-stage builds for size optimization - Configuring container security best practices - Setting up health checks and resource limits ## Core Patterns ### Multi-stage Dockerfile (Node.js) ```dockerfile # Build stage FROM node:20-alpine AS builder WORKDIR /app COPY package*.json ./ # Install full deps (including devDependencies) — `npm run build` needs them. # Production-only prune happens in the runner stage below. RUN npm ci && npm cache clean --force COPY . . RUN npm run build # Production stage FROM node:20-alpine AS runner WORKDIR /app ENV NODE_ENV=production RUN addgroup -g 1001 -S nodejs && adduser -S nodejs -u 1001 COPY --from=builder --chown=nodejs:nodejs /app/dist ./dist COPY --from=builder --chown=nodejs:nodejs /app/node_modules ./node_modules USER nodejs EXPOSE 3000 HEALTHCHECK --interval=30s --timeout=3s --start-period=5s \ CMD wget -qO- http://localhost:3000/health || exit 1 CMD ["node", "dist/main.js"] ``` ### Docker Compose (Development) ```yaml version: '3.8' services: app: build: context: . target: builder volumes: - .:/app - /app/node_modules ports: - "3000:3000" environment: - DATABASE_URL=postgres://user:pass@db:5432/app depends_on: db: condition: service_healthy db: image: postgres:16-alpine environment: POSTGRES_USER: user POSTGRES_PASSWORD: pass POSTGRES_DB: app volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U user -d app"] interval: 5s timeout: 5s retries: 5 ``` ## Security Best Practices | Practice | Implementation | |----------|----------------| | Non-root user | `USER nodejs` or `USER 1001` | | Minimal base image | Use `-alpine` or `-slim` variants | | No secrets in image | Use runtime env vars or secrets | | Pin versions | `FROM node:20.10.0-alpine` not `latest` | | Scan images | `docker scout`, `trivy`, `snyk` | | Health checks | `HEALTHCHECK` instruction | ## .dockerignore Template ``` node_modules .git .env* *.md Dockerfile* docker-compose* .dockerignore coverage .nyc_output ``` ## Constraints ### MUST DO - Use multi-stage builds for production images - Run containers as non-root users - Implement health checks - Use specific version tags for base images - Create comprehensive .dockerignore files ### MUST NOT DO - Store secrets in Dockerfiles or image layers - Use `latest` tag for production deployments - Run containers as root in production - Include unnecessary files in build context - Skip security scanning before deployment ## Output Templates Provide: Multi-stage Dockerfiles, Docker Compose configurations, .dockerignore files, security-hardened container configurations ## Related Skills - **devops-kubernetes**: Deploying containers to K8s clusters - **devops-github-actions**: CI/CD pipeline integration with Docker - **devops-release-automation**: Artifact management and promotion
GitHub에서 보기