// Container development with Docker, Dockerfiles, 12-factor principles, multi-stagebuilds, and Skaffold workflows. Enforces MANDATORY non-root users, minimal Alpine/slimbase images, and security hardening. Covers containerization, orchestration, and secureimage construction.Use when user mentions Docker, Dockerfile, containers, docker-compose, multi-stagebuilds, container images, container security, or 12-factor app principles.
| name | container-development |
| description | Container development with Docker, Dockerfiles, 12-factor principles, multi-stage builds, and Skaffold workflows. Enforces MANDATORY non-root users, minimal Alpine/slim base images, and security hardening. Covers containerization, orchestration, and secure image construction. Use when user mentions Docker, Dockerfile, containers, docker-compose, multi-stage builds, container images, container security, or 12-factor app principles. |
| allowed-tools | Glob, Grep, Read, Bash, Edit, Write, TodoWrite, WebSearch, WebFetch |
Expert knowledge for containerization and orchestration with focus on security-first, lean container images and 12-factor app methodology.
Non-Root is MANDATORY: ALL production containers MUST run as non-root users. This is not optional.
Minimal Base Images: Use Alpine (~5MB) for Node.js/Go/Rust. Use slim (~50MB) for Python (musl compatibility issues with Alpine).
Multi-Stage Builds Required: Separate build and runtime environments. Build tools should NOT be in production images.
Container Image Construction
Container Orchestration
.dockerignore fileCRITICAL: Before using base images, verify latest versions:
Use WebSearch or WebFetch to verify current versions.
Multi-Stage Dockerfile Pattern (Node.js - Non-Root Alpine)
# Build stage - use Alpine for minimal size
FROM node:24-alpine AS build
WORKDIR /app
COPY package*.json ./
RUN --mount=type=cache,target=/root/.npm npm ci
COPY . .
RUN npm run build
# Runtime stage - minimal nginx Alpine
FROM nginx:1.27-alpine
# Create non-root user BEFORE copying files
RUN addgroup -g 1001 -S appgroup && \
adduser -u 1001 -S appuser -G appgroup
COPY --from=build /app/dist /usr/share/nginx/html
# Security: Make nginx dirs writable by non-root
RUN chown -R appuser:appgroup /var/cache/nginx /var/run /var/log/nginx
USER appuser
EXPOSE 8080
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
CMD wget --no-verbose --tries=1 --spider http://localhost:8080/health || exit 1
Security Best Practices (Mandatory)
latest12-Factor App Principles
Skaffold Preference
For detailed Dockerfile optimization techniques, orchestration patterns, security hardening, and Skaffold configuration, see REFERENCE.md.
/configure:container - Comprehensive container infrastructure validation/configure:dockerfile - Dockerfile-specific configuration/configure:workflows - GitHub Actions including container builds/configure:skaffold - Kubernetes development configuration