DO

docker-extend

Sets up gitignored overrides for Docker containers to allow personalized tool installations.

Install

mkdir -p .claude/skills/docker-extend && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/14589" && unzip -o skill.zip -d .claude/skills/docker-extend && rm skill.zip

Installs to .claude/skills/docker-extend

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Use when: User wants to extend Docker with custom tools, personalize the Docker environment, or set up user-specific Docker customization. Triggers: 'extend docker', 'docker-extend', 'add tools to docker', 'customize docker', 'add my tools to the container', 'personalize docker setup', 'docker user setup', 'install tools in docker'. Does: Interactively sets up Dockerfile.user and docker-compose.override.yml so users can add personal tools to their Docker environment without affecting maintainer files or committing user-specific config to git.
548 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Beginner

Key capabilities

  • Add custom tools to Docker environments
  • Personalize Docker development setups
  • Set up user-specific Docker customizations
  • Configure `Dockerfile.user` for tool installation
  • Configure `docker-compose.override.yml` for personal settings
  • Rebuild Docker images with custom tools

How it works

This skill interactively sets up `Dockerfile.user` and `docker-compose.override.yml` by copying example files if they don't exist. It then modifies `Dockerfile.user` to install requested tools, allowing users to customize their Docker environment without affecting source-controlled files.

Inputs & outputs

You give it
A request to add tools to Docker or personalize the environment, with optional tool names
You get back
Updated `Dockerfile.user` and `docker-compose.override.yml` files, and a rebuild command

When to use docker-extend

  • Adding custom debuggers to Docker
  • Installing local CLI tools
  • Personalizing development containers

About this skill

Docker Extend

Sets up personal Docker tool customization using the project's gitignored override pattern. Your Dockerfile.user and docker-compose.override.yml are yours — never committed to git.

Step 1: Detect Context

Determine if the user is in dev (source build) or deploy (GHCR) mode:

!if [ -f docker-compose.yml ] && grep -q 'build: \.' docker-compose.yml 2>/dev/null; then echo "DEV_MODE: Building from source (root docker-compose.yml)"; elif [ -f deploy/docker-compose.yml ]; then echo "DEPLOY_MODE: Using GHCR image (deploy/docker-compose.yml)"; else echo "UNKNOWN_MODE: No docker-compose.yml found in root or deploy/"; fi

Decision:

  • DEV_MODE → work with Dockerfile.user + docker-compose.override.yml (repo root)
  • DEPLOY_MODE → work with deploy/Dockerfile.user + deploy/docker-compose.override.yml
  • UNKNOWN_MODE → ask the user which directory their docker-compose.yml lives in before proceeding

Step 2: Check Current State

DEV_MODE — check root files:

!echo "=== Dockerfile.user ===" && (cat Dockerfile.user 2>/dev/null || echo "(not found — will create from example)") && echo "" && echo "=== docker-compose.override.yml ===" && (cat docker-compose.override.yml 2>/dev/null || echo "(not found — will create from example)")

DEPLOY_MODE — check deploy/ files:

!echo "=== deploy/Dockerfile.user ===" && (cat deploy/Dockerfile.user 2>/dev/null || echo "(not found — will create from example)") && echo "" && echo "=== deploy/docker-compose.override.yml ===" && (cat deploy/docker-compose.override.yml 2>/dev/null || echo "(not found — will create from example)")

If both files already exist: Skip to Step 4 (add tools). If files are missing: Proceed to Step 3 (copy from examples). If example files are missing too: Tell the user the project hasn't added the example files yet and to check with the maintainers or the docs.

Step 3: Copy Example Files

Run only the copy commands for whichever files are missing. Do NOT overwrite existing files.

DEV_MODE:

# Only if Dockerfile.user does not exist:
cp Dockerfile.user.example Dockerfile.user

# Only if docker-compose.override.yml does not exist:
cp docker-compose.override.example.yml docker-compose.override.yml

DEPLOY_MODE:

# Only if deploy/Dockerfile.user does not exist:
cp deploy/Dockerfile.user.example deploy/Dockerfile.user

# Only if deploy/docker-compose.override.yml does not exist:
cp deploy/docker-compose.override.example.yml deploy/docker-compose.override.yml

After running the copy commands, confirm to the user which files were created.

Step 4: Add Tools

Parse $ARGUMENTS for tool names (space-separated, e.g., vim ripgrep jq).

If tools were specified: Edit the appropriate Dockerfile.user to add (or uncomment) the RUN apt-get install block with the requested packages. Use the Edit tool — do not rewrite the entire file.

The block to add/modify:

RUN apt-get update && apt-get install -y --no-install-recommends \
    <tool1> \
    <tool2> \
 && rm -rf /var/lib/apt/lists/*

If no tools were specified: Show the user the file and ask which tools they want to add. Then edit the file accordingly.

Step 5: Rebuild

Show the user the rebuild command for their context. Do NOT run it automatically.

DEV_MODE:

docker compose build && docker compose up -d

DEPLOY_MODE:

cd deploy && docker compose build && docker compose up -d

Summary

Tell the user:

  1. Which files were created (if any)
  2. Which tools were added to Dockerfile.user (if any)
  3. The rebuild command to run when ready
  4. A reminder that Dockerfile.user and docker-compose.override.yml are gitignored — they're personal and won't be committed

When not to use it

  • When the user does not want to customize their Docker environment
  • When the project does not use `Dockerfile.user.example` or `docker-compose.override.example.yml`
  • When the user wants to modify source-controlled Docker files

Limitations

  • Relies on the existence of `Dockerfile.user.example` and `docker-compose.override.example.yml`
  • Only supports adding tools via `apt-get install`
  • Does not automatically run the Docker rebuild command

How it compares

This workflow enables personal Docker environment customization using git-ignored override files, preventing user-specific configurations from being committed to the main repository, unlike direct modifications to shared Dockerfiles.

Compared to similar skills

docker-extend side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
docker-extend (this skill)04moReviewBeginner
docker-expert116moReviewIntermediate
deployment-engineer44moNo flagsAdvanced
devops27moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

docker-expert

davila7

Docker containerization expert with deep knowledge of multi-stage builds, image optimization, container security, Docker Compose orchestration, and production deployment patterns. Use PROACTIVELY for Dockerfile optimization, container issues, image size problems, security hardening, networking, and orchestration challenges.

1135

deployment-engineer

sickn33

Expert deployment engineer specializing in modern CI/CD pipelines, GitOps workflows, and advanced deployment automation. Masters GitHub Actions, ArgoCD/Flux, progressive delivery, container security, and platform engineering. Handles zero-downtime deployments, security scanning, and developer experience optimization. Use PROACTIVELY for CI/CD design, GitOps implementation, or deployment automation.

418

devops

mrgoonie

Deploy to Cloudflare (Workers, R2, D1), Docker, GCP (Cloud Run, GKE), Kubernetes (kubectl, Helm). Use for serverless, containers, CI/CD, GitOps, security audit.

216

ecs

itsmostafa

AWS ECS container orchestration for running Docker containers. Use when deploying containerized applications, configuring task definitions, setting up services, managing clusters, or troubleshooting container issues.

215

add-install-docker-ci-e2e

RLinf

Adds install command in install script, Docker build stage in Dockerfile, and CI jobs for docker build, install script, and embodied e2e test when introducing a new model or environment in RLinf. Use when adding a new embodied model (e.g. dexbotic), new env (e.g. maniskill_libero), or new model+env combination that should be installable, dockerized, and tested in CI.

16

devcontainer-management

netalertx

Guide for identifying, managing, and running commands within the NetAlertX development container. Use this when asked to run commands, testing, setup scripts, or troubleshoot container issues.

13

Search skills

Search the agent skills registry