Skip to content
cccskills
FreePublished on GitHub

docker-extend

Customize a project's Docker environment with personal tools such as vim, ripgrep, or jq. The skill prepares user override files, adds requested packages, and provides rebuild commands while keeping personal configuration out of Git.

OriginalShow the original description

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.

Works withDocker
See how to install

Good for

  • Adding an editor or search tools to a container
  • Keeping personal settings separate from shared files
  • Customizing a source-built development environment
  • Customizing a deployment that uses a GHCR image

Files included (1)

  • SKILL.md4.4 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

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

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

archon-cli

FreeSummary

Use the Archon CLI to launch AI workflows on projects, inspect their results, and approve, reject, cancel, or resume runs. The skill also guides setup, configuration changes, workflow creation, and improvements to workflow prompts.

  • Running an AI workflow to address an issue
  • Asking Archon to review a pull request
  • Inspecting, approving, or resuming a run
coleam00/Archon23.7KUpdated Oct 18, 2026

playwright-cli

FreeSummary

Automate browser actions such as filling forms, clicking buttons, and switching tabs. Inspect page snapshots, network requests, and console messages to check website behavior, record interactions, and support work on Playwright tests.

  • Checking form submission and page navigation
  • Investigating browser errors and network requests
  • Recording browser interactions as video
coleam00/Archon23.7KUpdated Oct 18, 2026

release

FreeSummary

Prepare a software release from the dev branch by turning commits into a changelog, updating the version, and creating a pull request to main. The workflow also covers release tags, branch synchronization, and Homebrew package updates.

  • Preparing a patch, minor, or major release
  • Turning changes into a user-facing changelog
  • Updating Homebrew packages after publishing binaries
coleam00/Archon23.7KUpdated Oct 18, 2026

rulecheck

FreeSummary

Delegate checks for AGENTS.md rule violations to a dedicated agent. It scans the codebase, fixes high-impact issues in a separate working copy, runs full validation, and creates a pull request, tracking progress across runs through memory.

  • Checking code for AGENTS.md rule violations
  • Prioritizing high-impact rule violations for fixes
  • Checking compliance within a chosen focus area
coleam00/Archon23.7KUpdated Oct 18, 2026

test-release

FreeSummary

Test a released archon binary through Homebrew or curl installation on macOS or a Linux VPS. Check version information, bundled workflows, Claude execution, and sensitive environment key removal, then clean up and report the results.

  • Checking a newly published release
  • Reproducing a bug in a released version
  • Verifying a hotfix after updating a release tag
coleam00/Archon23.7KUpdated Oct 18, 2026

triage

FreeSummary

Organize GitHub issues by reading their full descriptions and adding labels for type, effort, priority, and affected area. Preserve existing labels, fill missing categories, and summarize the reasoning alongside duplicate, related, or blocking issue relationships.

  • Classifying unlabeled GitHub issues
  • Filling missing label categories on open issues
  • Reviewing a specific issue or numbered range
coleam00/Archon23.7KUpdated Oct 18, 2026

See all skills by coleam00

Report a problem with this skill