mcpField
C
configure-container

configure-container

github.com/laurigatesCloud & DevOps5951 installsUpdated 1d ago
Repository

About configure-container

A skill for auditing and configuring container infrastructure against project standards. It checks Dockerfiles, build workflows, scanning, and security hardening, with check-only and automatic-fix modes.

Key features

  1. 01Check Dockerfiles and build workflows
  2. 02Review multi-stage builds and non-root users
  3. 03Check image labels and .dockerignore
  4. 04Configure Trivy or Grype scanning
  5. 05Review multi-platform builds and caching
  6. 06Run checks or apply automatic fixes

Use cases

  1. 01Audit container infrastructure compliance
  2. 02Review container build pipelines
  3. 03Add vulnerability scanning to CI
  4. 04Fix container configuration issues

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/laurigates/claude-plugins --skill configure-container

After installing, type/configure-containerin Claude Code to confirm it loaded.

Bundled filesREFERENCE.md

Details

From the project README

/configure:container

Check and configure comprehensive container infrastructure against project standards with emphasis on minimal images, non-root users, and security hardening.

When to Use This Skill

Use this skill when...Use another approach when...
Auditing container infrastructure compliance (Dockerfile, workflows, scanning)Writing a Dockerfile from scratch (/configure:dockerfile)
Checking multi-stage builds, non-root users, and security hardeningConfiguring Kubernetes deployments (/configure:skaffold)
Setting up container build workflows with GHCR and multi-platform supportRunning vulnerability scans on a built image (Trivy CLI directly)
Verifying .dockerignore, OCI labels, and base image versionsConfiguring devcontainer features for VS Code
Adding Trivy/Grype scanning to CI pipelinesDebugging container runtime issues (system-debugging agent)

Context

  • Dockerfiles: !find . -maxdepth 2 \( -name 'Dockerfile' -o -name 'Dockerfile.*' -o -name '*.Dockerfile' \)
  • Docker ignore: !find . -maxdepth 1 -name '.dockerignore'
  • Container workflows: !find .github/workflows -maxdepth 1 \( -name '*container*' -o -name '*docker*' -o -name '*build*' \)
  • Devcontainer: !find .devcontainer -maxdepth 1 -name 'devcontainer.json'
  • Skaffold: !find . -maxdepth 1 -name 'skaffold.yaml'
  • Package files: !find . -maxdepth 1 \( -name 'package.json' -o -name 'pyproject.toml' -o -name 'Cargo.toml' -o -name 'go.mod' \)
  • Project standards: !find . -maxdepth 1 -name '.project-standards.yaml'

Parameters

Parse from command arguments:

  • --check-only: Report compliance status without modifications (CI/CD mode)
  • --fix: Apply fixes automatically without prompting
  • --component <name>: Check specific component only (dockerfile, workflow, registry, scanning, devcontainer)

Security Philosophy

Minimal Attack Surface: Smaller images = fewer vulnerabilities. Use Alpine (~5MB) for Node.js, slim (~50MB) for Python.

Non-Root by Default: ALL containers MUST run as non-root users.

Multi-Stage Required: Separate build and runtime environments. Build tools and dev dependencies should NOT be in production images.

Execution

Execute this container infrastructure compliance check:

Step 1: Detect container-related files

Search for Dockerfile, workflow files, devcontainer config, and .dockerignore. Detect the project type (frontend, python, go, rust, infrastructure) from package files.

Step 2: Look up latest base image versions

Use WebSearch or WebFetch to verify current versions before flagging outdated images:

  1. Node.js Alpine images: Check Docker Hub for latest LTS Alpine tags
  2. Python slim images: Check Docker Hub for latest slim tags
  3. nginx Alpine: Check Docker Hub for latest Alpine tags
  4. GitHub Actions: Check release pages for latest action versions
  5. Trivy: Check aquasecurity/trivy-action releases
Step 3: Analyze each component

Check each component against standards:

Dockerfile Standards:

CheckStandardSeverity
ExistsRequired for containerized projectsFAIL if missing
Multi-stageRequired (build + runtime stages)FAIL if missing
HEALTHCHECKRequired for K8s probesFAIL if missing
Non-root userREQUIRED (not optional)FAIL if missing
.dockerignoreRequiredWARN if missing
.dockerignore Dockerfile*Use glob to exclude all Dockerfile variants from contextWARN if only Dockerfile
Base image versionLatest stable (check Docker Hub)WARN if outdated
Minimal baseAlpine for Node, slim for PythonWARN if bloated

Base Image Standards (verify latest before reporting):

LanguageBuild ImageRuntime ImageSize Target
Node.jsnode:24-alpine (LTS)nginx:1.27-alpine< 50MB
Pythonpython:3.13-slimpython:3.13-slim< 150MB
Gogolang:1.23-alpinescratch or alpine:3.21< 20MB
Rustrust:1.84-alpinealpine:3.21< 20MB

Security Hardening Standards:

CheckStandardSeverity
Non-root USERRequired (create dedicated user)FAIL if missing
Read-only FS--read-only or RO annotationINFO if missing
No new privileges--security-opt=no-new-privilegesINFO if missing
Drop capabilities--cap-drop=all + explicit --cap-addINFO if missing
No secrets in imageNo ENV with sensitive dataFAIL if found

Build Workflow Standards:

CheckStandardSeverity
Workflow existscontainer-build.yml or similarFAIL if missing
checkout actionv4+WARN if older
build-push-actionv6+WARN if older
Multi-platformlinux/amd64,linux/arm64WARN if missing
Build cachingGHA cache enabledWARN if missing
Security scanTrivy/Grype in workflowWARN if missing
id-token: writeRequired when provenance/SBOM configuredWARN if missing
Cache scopeExplicit scope= for multi-image buildsWARN if missing
Scanner pinnedTrivy/Grype action pinned by SHA (not @master)WARN if unpinned

Container Labels Standards (GHCR Integration):

CheckStandardSeverity
org.opencontainers.image.sourceRequired - Links to repositoryWARN if missing
org.opencontainers.image.descriptionRequired - Package descriptionWARN if missing
org.opencontainers.image.licensesRequired - SPDX licenseWARN if missing

Run /configure:dockerfile for detailed Dockerfile checks if needed.

Step 4: Generate compliance report

Print a formatted compliance report:

Container Infrastructure Compliance Report
==============================================
Project Type: frontend (detected)

Component Status:
  Dockerfile              PASS
  Build Workflow          PASS
  Registry Config         PASS
  Container Scanning      WARN (missing)
  Devcontainer           SKIP (not required)
  .dockerignore          PASS

Dockerfile Checks:
  Multi-stage             2 stages          PASS
  HEALTHCHECK             Present           PASS
  Base images             node:22, nginx    PASS

Build Workflow Checks:
  Workflow                container-build.yml PASS
  checkout                v4                PASS
  build-push-action       v6                PASS
  Multi-platform          amd64,arm64       PASS
  GHA caching             Enabled           PASS

Container Labels Checks:
  image.source            In metadata-action PASS
  image.description       Custom label set  PASS
  image.licenses          Not configured    WARN

Recommendations:
  - Add org.opencontainers.image.licenses label to workflow
  - Add Trivy or Grype vulnerability scanning to CI

Overall: 2 warnings, 1 info

If --check-only, stop here.

Step 5: Apply fixes (if --fix or user confirms)
  1. Missing Dockerfile: Run /configure:dockerfile --fix
  2. Missing build workflow: Create from template in REFERENCE.md
  3. Missing scanning: Add Trivy scanning job
  4. Missing .dockerignore: Create standard .dockerignore from REFERENCE.md
  5. Outdated actions: Update version numbers
Step 6: Update standards tracking

Update .project-standards.yaml:

components:
  container: "2025.1"
  dockerfile: "2025.1"
  container-workflow: "2025.1"

For detailed templates (Dockerfile, workflow, devcontainer, .dockerignore), see REFERENCE.md.

Agentic Optimizations

ContextCommand
Quick compliance check/configure:container --check-only
Auto-fix all issues/configure:container --fix
Dockerfile only/configure:container --check-only --component dockerfile
Workflow only/configure:container --check-only --component workflow
Scanning only/configure:container --fix --component scanning
Find all Dockerfilesfind . -maxdepth 2 \( -name 'Dockerfile' -o -name 'Dockerfile.*' \) 2>/dev/null

Flags

FlagDescription
--check-onlyReport status without offering fixes
--fixApply fixes automatically
--component <name>Check specific component only (dockerfile, workflow, registry, scanning, devcontainer)

Component Dependencies

Container Infrastructure
├── Dockerfile (required)
│   └── .dockerignore (recommended)
├── Build Workflow (required for CI/CD)
│   ├── Registry config
│   └── Multi-platform builds
├── Container Scanning (recommended)
│   └── SBOM generation (optional)
└── Devcontainer (optional)
    └── VS Code extensions

Notes

  • Multi-platform builds: Essential for M1/M2 Mac developers and ARM servers
  • GHCR: GitHub Container Registry is preferred for GitHub-hosted projects
  • Trivy: Recommended scanner for comprehensive vulnerability detection
  • Alpine vs Slim: Use Alpine for Node.js/Go/Rust. Use slim (Debian) for Python (musl compatibility issues)
  • Non-root is mandatory: Never run containers as root in production
  • Version pinning: Always use specific version tags, never latest

See Also

  • /configure:dockerfile - Dockerfile-specific configuration
  • /configure:workflows - GitHub Actions workflow configuration
  • /configure:skaffold - Kubernetes development configuration
  • /configure:security - Security scanning configuration
  • /configure:all - Run all compliance checks
  • container-development skill - Container best practices
  • ci-workflows skill - CI/CD workflow patterns

Comments

Markdown supported