Skip to main content

docker

Containerization guidance for multi-stage builds, non-root execution, dockerignore hygiene, layer caching, healthchecks, and secret handling. Use when writing or reviewing Dockerfiles and container images.

소스 정보

저장소
kid-sid/codex-spellbook
최근 소스 활동
2026년 4월 17일 23:33
감지된 SKILL.md 언어
영어
스타
22
포크
1

설치 방법

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

소스 파일 검토

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

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
docker
description
Containerization guidance for multi-stage builds, non-root execution, dockerignore hygiene, layer caching, healthchecks, and secret handling. Use when writing or reviewing Dockerfiles and container images.
# Docker Build minimal, reproducible images that start fast, run as non-root, and separate build-time concerns from runtime behavior. ## When to Activate - Write or refactor a Dockerfile - Split build and runtime concerns - Harden a container for production - Improve Docker build cache performance - Add container healthchecks - Review secret handling in image builds - Shrink image size and attack surface ## Base Images and Layering | Use Case | Preferred | Avoid | | --- | --- | --- | | Production service | Distroless or slim runtime | Full distro with build toolchain | | Build stage | Language-specific SDK image | Installing compilers in runtime image | | Tiny static binary | `scratch` when feasible | Heavy general-purpose images | | Order | Reason | | --- | --- | | Copy lockfiles first | Maximizes dependency cache hits | | Install dependencies | Expensive step stays cached | | Copy source later | Code changes do not bust dependency layer | ## Runtime Hardening BAD ```dockerfile FROM python:3.12-slim WORKDIR /app COPY . . CMD ["python", "main.py"] ``` GOOD ```dockerfile FROM python:3.12-slim AS runtime WORKDIR /app RUN useradd --create-home appuser COPY --chown=appuser:appuser . . USER appuser CMD ["python", "main.py"] ``` | Scenario | Rule | | --- | --- | | Build-time private dependency access | Use ephemeral build secrets if available | | Runtime credentials | Inject via environment or secret store | | Static secret in Dockerfile | Never do it | | Preferred | Avoid | | --- | --- | | Application-level readiness endpoint | Checking only whether PID exists | | Fast, dependency-light command | Heavy scripts that change container state | ## Ignore List | Always Ignore | | --- | | `.git` | | `node_modules` | | `.venv` | | test artifacts | | local secrets and `.env` files | BAD ```dockerfile COPY . . RUN npm install ``` GOOD ```dockerfile COPY package.json pnpm-lock.yaml ./ RUN pnpm install --frozen-lockfile COPY . . ``` ## Checklist - [ ] Dockerfile uses multi-stage builds when build tooling is required - [ ] Dependency layers are copied before application source - [ ] Runtime image uses a non-root user - [ ] `.dockerignore` excludes local junk and secrets - [ ] Secrets are injected at runtime or via build secret facilities - [ ] Healthcheck verifies real service readiness - [ ] Base image is minimal for the workload
GitHub에서 보기