docker-extend
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.
How do I install this agent skill?
npx skills add https://github.com/coleam00/archon --skill docker-extendIs this agent skill safe to install?
- Gen Agent Trust Hubpass
This skill provides a utility for developers to personalize their Docker environments. It uses shell blocks to inspect project structure and modifies local, git-ignored configuration files based on user input. It follows security best practices by requiring manual user action for the final build and deployment steps.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
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
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/coleam00/archon/docker-extend">View docker-extend on skillZs</a>