Skip to content
Back to skills

Docker Extend

ASecurity

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 maintain...

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 11, 2026
devopsbashdockergit

Security analysis

A93/100
  • highPerforms destructive filesystem operations

Pro shows the line behind each finding and how to fix it

Scanned September 11, 2026

npx -y skills add ibragimov-oasis/vibe-coder --skill docker-extend --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Docker Extend?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Docker Extend
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ibragimov-oasis-docker-extend/badge)](https://www.skillsdirectory.com/skills/ibragimov-oasis-docker-extend)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: docker-extend
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.
argument-hint: '[optional: tools to install, e.g. "vim ripgrep jq"]'
tags:
  - domain/orchestration
  - artifact/workflow
  - source/core-archon
---

# 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:**

```bash
# 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:**

```bash
# 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:
```dockerfile
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:**
```bash
docker compose build && docker compose up -d
```

**DEPLOY_MODE:**
```bash
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

## 🔗 Связи

- [[MOC - Orchestration]] — Orchestration hub
- [[orchestration/archon]] — Archon
- [[000 - Map of Maps]] — Map of Maps

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.