RCA-2026-03-17-001: Fix Applied

Resolution

Immediate Actions

Cleanup command using xargs:

# List running Kroki containers
docker ps --filter "name=domus-kroki"

# Stop all Kroki containers in one command
docker ps -q --filter "name=domus-kroki" | xargs docker stop

xargs Pattern Breakdown

docker ps -q --filter "name=domus-kroki" | xargs docker stop
#         │                  │                 │
#         │                  │                 └─ xargs: pass container IDs as args to docker stop
#         │                  └─ filter: only containers matching "domus-kroki"
#         └─ -q: quiet mode, output only container IDs

Why xargs here:

  • docker stop accepts multiple container IDs

  • xargs batches the IDs from stdin into a single command

  • Avoids loop: for id in $(docker ps -q …​); do docker stop $id; done

  • One process instead of N processes

Alternative (explicit names)

docker stop domus-kroki domus-kroki-bpmn domus-kroki-excalidraw domus-kroki-mermaid

Less flexible - requires knowing all container names.

Verification

docker ps --filter "name=domus-kroki"
# Should return empty (no containers)

CLI Mastery: xargs Patterns for Docker

# Stop containers by pattern
docker ps -q --filter "name=prefix" | xargs docker stop

# Remove stopped containers by pattern
docker ps -aq --filter "name=prefix" | xargs docker rm

# Remove images by pattern
docker images -q "*/pattern*" | xargs docker rmi

# Prune with confirmation bypass
docker ps -q --filter "status=exited" | xargs -r docker rm

# Parallel stop (faster for many containers)
docker ps -q --filter "name=prefix" | xargs -P 4 -I {} docker stop {}