No description
Find a file
2026-06-03 18:02:53 -04:00
src Improve image diff output 2026-06-03 18:02:53 -04:00
.gitignore Init 2026-05-10 10:31:54 -04:00
Cargo.lock Make checking parallel 2026-05-25 16:45:17 -04:00
Cargo.toml Make checking parallel 2026-05-25 16:45:17 -04:00
DESIGN.md Init 2026-05-10 10:31:54 -04:00
README.md check: add --no-pull for best-effort registry-only checks 2026-05-11 13:52:14 -04:00

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 HEAD requests 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, when XDG_CONFIG_HOME is set
  • ~/.config/dcm/config.toml, otherwise

Example:

excluded_projects = ["project-a", "project-b"]

Notes

  • check may pull images to determine whether updates exist, but does not recreate containers.
  • check first compares remote registry manifest digests with local RepoDigests; if that fast check is unavailable or shows a change, it falls back to pulling before comparing image IDs.
  • check --no-pull skips fallback pulls for a faster best-effort check. It reports definite remote digest changes, but cannot resolve images whose registry digest check is unavailable.
  • update pulls images and recreates containers with docker compose up -d.
  • Project detection only includes currently running Compose-managed containers.