Command-line completion

Estimated reading time: 1 minute

Compose comes with command completion for the bash and zsh shell.

Installing Command Completion

Bash

Make sure bash completion is installed. If you use a current Linux in a non-minimal installation, bash completion should be available. On a Mac, install with brew install bash-completion

Place the completion script in /etc/bash_completion.d/ (/usr/local/etc/bash_completion.d/ on a Mac), using e.g.

 curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose

Completion will be available upon next login.

Zsh

Place the completion script in your /path/to/zsh/completion, using e.g. ~/.zsh/completion/

mkdir -p ~/.zsh/completion
curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/zsh/_docker-compose > ~/.zsh/completion/_docker-compose

Include the directory in your $fpath, e.g. by adding in ~/.zshrc

fpath=(~/.zsh/completion $fpath)

Make sure compinit is loaded or do it by adding in ~/.zshrc

autoload -Uz compinit && compinit -i

Then reload your shell

exec $SHELL -l

Available completions

Depending on what you typed on the command line so far, it will complete

  • available docker-compose commands
  • options that are available for a particular command
  • service names that make sense in a given context (e.g. services with running or stopped instances or services based on images vs. services based on Dockerfiles). For docker-compose scale, completed service names will automatically have “=” appended.
  • arguments for selected options, e.g. docker-compose kill -s will complete some signals like SIGHUP and SIGUSR1.

Enjoy working with Compose faster and with less typos!

Compose documentation

chat icon Feedback? Suggestions? Can't find something in the docs?
Edit this page Request docs changes Get support