コマンドライン補完

Compose は bash と zsh シェル向けの コマンド補完 を搭載しています。

コマンドライン補完のインストール

Bash

bash 補完(completion)がインストールされているかどうか確認します。現在の Linux が最小インストールでなければ、bash 補完は利用可能です。Mac は brew install bash-completion でインストールします。

次のようにして、補完スクリプトを /etc/bash_completion.d/ ( Mac は /usr/local/etc/bash_completion.d/ )に置きます。

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

次回ログイン時から補完機能が利用可能になります。

Zsh

補完スクリプトを /path/to/zsh/completion や、~/.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

~/.zshrc に以下を追加することで、 $fpath にディレクトリを追加します。

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

compinit で読み込まれて ~/.zshrc に追加されているか確認します。

autoload -Uz compinit && compinit -i

それからシェルを再読み込みします。

exec $SHELL -l

利用可能な補完

コマンドラインの補完は、入力する内容に依存します。

  • 利用可能な docker-compose コマンド
  • 個々のコマンドで利用可能なオプション
  • 指定した状態にあるサービス名(例:サービスが実行中、停止中、サービスの元になったイメージ、あるいは Dockerfile の元となるサービス)。docker-compose scale の補完では、サービス名に自動的に "=" を追加します。
  • 選択したオプションに対する引数。たとえば docker-compose kill -s は SIGHUP や SIGUSR1 のようなシグナルを補完します。

Compose をより速く・入力ミス(typo)なく楽しんで使いましょう!

参考

Command-line Completion
https://docs.docker.com/compose/completion/