コマンドライン補完

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 | awk 'NR==1{print $NF}')/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 | awk 'NR==1{print $NF}')/contrib/completion/zsh/_docker-compose > ~/.zsh/completion/_docker-compose

$fpath には ~/.zshrc ディレクトリを追加します。

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

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

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

autoload -Uz compinit && compinit -i

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

exec $SHELL -l

利用可能な補完

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

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

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