Skip to main content

A smart CLI wrapper for docker compose with interactive selection support.

Project description

Fast DCP

🚀 A smart CLI wrapper for docker compose — with interactive file, profile, and service selection.

🆕 Highlights

Interactive file, profile & service selection

Running -f, -pf, or -s without arguments auto-detects compose files, profiles, and services, letting you choose interactively.

$ dcpu -f
☑ Found 2 docker-compose files!
    1. docker-compose.yml
    2. docker-compose.prod.yml
Enter your choices (e.g., 1,3,4) or 'q' to quit:

$ dcpu -pf
☑ Found 2 profiles!
    1. dev
    2. prod
Enter your choices (e.g., 1,3,4) or 'q' to quit:

$ dcpu -s
☑ Found 3 services!
    1. db
    2. frontend
    3. app
Enter your choices (e.g., 1,3,4) or 'q' to quit:

Sample Usage

# docker compose up --build
dcpu -b
# docker compose -f docker-compose.prod.yml up -d
dcpu -df docker-compose.prod.yml
# docker compose exec app bash
dcpe app
# docker compose exec db psql -U user -d mydb
dcpe db -- psql -U user -d mydb
# docker compose restart app
dcp re app

Install fast-dcp

Quick Install

# Using pipx
pipx install fast-dcp
# OR using uv
uv tool install fast-dcp

Not familiar with Python tooling?

If you don't have pipx or uv installed yet:

Windows
python -m pip install --user pipx
python -m pipx ensurepath
# Restart terminal, then:
pipx install fast-dcp
macOS
brew install pipx
pipx ensurepath
pipx install fast-dcp
Linux (Ubuntu/Debian)
pip install pipx
pipx ensurepath
pipx install fast-dcp

Features

  • Interactive Selection: auto-detect and interactively select compose files, profiles, and services
  • Short Aliases: dcp u, dcp b, dcp e — fewer keystrokes for common commands
  • Dedicated Commands: dcpu and dcpe for frequent up/exec workflows
  • Zero Config: No configuration files needed — just install and run
  • Cross-Platform: Works on Windows, macOS, and Linux

FAQ

Why use pipx or uv tool instead of pip?

Both pipx and uv tool install CLI tools in isolated environments, so fast-dcp won't conflict with other Python packages. The commands (dcp, dcpu, dcpe) are available globally without activating a virtual environment. uv tool is the faster alternative if you already use uv.

Requirements

  • Python 3.11+
  • Docker with Compose V2 (docker compose — not docker-compose)
  • A docker-compose.yml (or *compose*.yml/yaml) in the current directory for interactive selection features

List of Commands

Common options (available for all commands): -s, -f FILE..., -pf PROFILE..., -p PROJECT

⚠️ Note: -f, -pf, -p are passed before the subcommand in the actual docker compose syntax,
but in fast-dcp they are specified after the subcommand (e.g. dcp up -f FILE).

Bash Command Executed Docker Command
dcp - (Show help)
dcpu [SERVICE...] [-d] [-b] [-w] docker compose up [SERVICE...]
dcpe [SERVICE] docker compose exec SERVICE bash
dcpe [SERVICE] [COMMANDS...] docker compose exec SERVICE [COMMANDS...]
dcp up(u) [SERVICE...] docker compose up [SERVICE...]
dcp up(u) -d docker compose up -d
dcp up(u) -b docker compose up --build
dcp up(u) -w docker compose up --wait
dcp build(b) [SERVICE...] docker compose build [SERVICE...]
dcp exec(e) [SERVICE] docker compose exec SERVICE bash
dcp exec(e) [SERVICE] [COMMANDS...] docker compose exec SERVICE bash [COMMANDS...]
dcp run [SERVICE] docker compose run SERVICE bash
dcp restart(re) [SERVICE...] docker compose restart [SERVICE...]
dcp ps [SERVICE...] [-a] [-st STATUS] docker compose ps [SERVICE...] [--all] [--status ...]
dcp logs(l) [SERVICE...] [-fo] docker compose logs [SERVICE...] [-f]
dcp stop(s) [SERVICE...] docker compose stop [SERVICE...]
dcp down [-ro] docker compose down [--remove-orphans]

and more... see dcp --help for the full list of supported commands and options.

License

MIT LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fast_dcp-0.5.2.tar.gz (16.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fast_dcp-0.5.2-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file fast_dcp-0.5.2.tar.gz.

File metadata

  • Download URL: fast_dcp-0.5.2.tar.gz
  • Upload date:
  • Size: 16.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fast_dcp-0.5.2.tar.gz
Algorithm Hash digest
SHA256 8c5d253d6975086e2d192cc8b953d4aeffa6a459987da86f7e65150b64751e84
MD5 e5baee2774a7bbe306e9c5440f48ac9c
BLAKE2b-256 7c7931f57de58e63fc0f815958a564aea5dc7aea27d39c4e63a9416cb42d3724

See more details on using hashes here.

File details

Details for the file fast_dcp-0.5.2-py3-none-any.whl.

File metadata

  • Download URL: fast_dcp-0.5.2-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fast_dcp-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5510e431a6f9c4d16d4c81410ef261debe8ed3a85e74cf0c592277b506ac5939
MD5 a82df69bf103e2903bdd1f9018133424
BLAKE2b-256 90bbee8945005a2c9a6ebf3fe64a54d6ff70967d12b749673573ac3f831622db

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page