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.zipInstalls 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.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
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 withDockerfile.user+docker-compose.override.yml(repo root)DEPLOY_MODE→ work withdeploy/Dockerfile.user+deploy/docker-compose.override.ymlUNKNOWN_MODE→ ask the user which directory theirdocker-compose.ymllives 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:
- Which files were created (if any)
- Which tools were added to
Dockerfile.user(if any) - The rebuild command to run when ready
- A reminder that
Dockerfile.useranddocker-compose.override.ymlare 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.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| docker-extend (this skill) | 0 | 4mo | Review | Beginner |
| docker-expert | 11 | 6mo | Review | Intermediate |
| deployment-engineer | 4 | 4mo | No flags | Advanced |
| devops | 2 | 7mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by az9713
View all by az9713 →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.
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.
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.
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.
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.
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.