| name | docker-containers |
| description | Master Docker containerization, image building, optimization, and container registry management. Learn containerization best practices and image security. |
| sasmp_version | 1.3.0 |
| eqhm_enabled | true |
| bonded_agent | 01-cluster-admin |
| bond_type | PRIMARY_BOND |
| capabilities | ["Multi-stage builds","Image optimization","Registry management","Container security","Build caching","Distroless images","Image scanning","OCI compliance"] |
| input_schema | {"type":"object","properties":{"action":{"type":"string","enum":["build","optimize","scan","push","inspect"]},"dockerfile_path":{"type":"string"},"registry":{"type":"string"},"target_size":{"type":"string"}}} |
| output_schema | {"type":"object","properties":{"image_info":{"type":"object"},"vulnerabilities":{"type":"array"},"optimization_suggestions":{"type":"array"}}} |
Docker & Containers
Executive Summary
Production-grade container image building and management covering multi-stage builds, image optimization, security scanning, and registry operations. This skill provides deep expertise in creating minimal, secure, and efficient container images following industry best practices and OCI specifications.
Core Competencies
1. Production-Grade Multi-Stage Builds
Optimized Node.js Application
# Stage 1: Dependencies
FROM node:20-alpine AS deps
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production && npm cache clean --force
# Stage 2: Build
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
# Stage 3: Production
FROM gcr.io/distroless/nodejs20-debian12 AS production
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/package.json ./
ENV NODE_ENV=production
USER nonroot:nonroot
EXPOSE 3000
CMD ["dist/server.js"]
Optimized Go Application
# Stage 1: Build
FROM golang:1.22-alpine AS builder
RUN apk add --no-cache git ca-certificates tzdata
WORKDIR /app
# Cache dependencies
COPY go.mod go.sum ./
RUN go mod download && go mod verify
# Build
COPY . .
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
-ldflags="-w -s -X main.version=${VERSION}" \
-o /app/server ./cmd/server
# Stage 2: Production (scratch)
FROM scratch AS production
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo
COPY --from=builder /app/server /server
USER 65534:65534
EXPOSE 8080
ENTRYPOINT ["/server"]
Optimized Python Application
# Stage 1: Dependencies
FROM python:3.12-slim AS builder
WORKDIR /app
RUN pip install --no-cache-dir poetry && \
poetry config virtualenvs.in-project true
COPY pyproject.toml poetry.lock ./
RUN poetry install --only main --no-interaction --no-ansi
# Stage 2: Production
FROM python:3.12-slim AS production
WORKDIR /app
# Create non-root user
RUN groupadd -r appgroup && useradd -r -g appgroup appuser
# Copy virtual environment
COPY --from=builder /app/.venv /app/.venv
COPY . .
ENV PATH="/app/.venv/bin:$PATH"
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
USER appuser:appgroup
EXPOSE 8000
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:8000", "app:app"]
2. Image Optimization Strategies
Layer Optimization Checklist
┌─────────────────────────────────────────────────────────────┐
│ IMAGE OPTIMIZATION CHECKLIST │
├─────────────────────────────────────────────────────────────┤
│ ✓ Use minimal base images (alpine, distroless, scratch) │
│ ✓ Multi-stage builds to exclude build tools │
│ ✓ Combine RUN commands to reduce layers │
│ ✓ Order layers by change frequency (least → most) │
│ ✓ Use .dockerignore to exclude unnecessary files │
│ ✓ Clean package manager cache in same RUN command │
│ ✓ Use specific version tags, avoid :latest │
│ ✓ Set appropriate user permissions │
│ ✓ Use COPY instead of ADD when possible │
│ ✓ Leverage build cache effectively │
└─────────────────────────────────────────────────────────────┘