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.

Datos de origen

Repositorio
kid-sid/codex-spellbook
Última actividad en el origen
17 de abril de 2026 a las 23:33
Idioma detectado de SKILL.md
inglés
Estrellas
22
Forks
1

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
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
Ver en GitHub