No description
- Rust 100%
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| DESIGN.md | ||
| README.md | ||
Docker-Compose Manager
dcm is a minimal Rust CLI for managing running Docker Compose projects on a system.
Features
- Detects running Docker Compose projects from Docker labels.
- Lists projects, services, images, containers, compose files, and working directories with readable colored output.
- Checks for image updates with realtime progress, using registry manifest
HEADrequests to skip unnecessary pulls when possible. - Batch-updates projects by pulling images and running
docker compose up -d. - Supports persistent project exclusions for batch check/update operations.
- Keeps Docker/Compose backend logic separate from terminal output so other interfaces can reuse it.
Usage
cargo run -- <command>
Commands:
dcm list
dcm check [--include-excluded] [--no-pull]
dcm update [--include-excluded] [-y|--yes]
dcm exclude <project>
dcm unexclude <project>
dcm exclusions
Configuration
Excluded projects are stored in:
$XDG_CONFIG_HOME/dcm/config.toml, whenXDG_CONFIG_HOMEis set~/.config/dcm/config.toml, otherwise
Example:
excluded_projects = ["project-a", "project-b"]
Notes
checkmay pull images to determine whether updates exist, but does not recreate containers.checkfirst compares remote registry manifest digests with localRepoDigests; if that fast check is unavailable or shows a change, it falls back to pulling before comparing image IDs.check --no-pullskips fallback pulls for a faster best-effort check. It reports definite remote digest changes, but cannot resolve images whose registry digest check is unavailable.updatepulls images and recreates containers withdocker compose up -d.- Project detection only includes currently running Compose-managed containers.