コマンドライン補完

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

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

Bash

bash 補完(completion)がインストールされているかどうか確認します。

Linux

  1. 現在の Linux OSでは(最小インストールでなければ)、bash 補完を利用可能でしょう。

  1. 補完スクリプトを /etc/bash_completion.d/ に置きます。

$ sudo curl \
    -L https://raw.githubusercontent.com/docker/compose/1.29.2/contrib/completion/bash/docker-compose \
    -o /etc/bash_completion.d/docker-compose
  1. ターミナルを再読み込みします。ターミナルを閉じて新しいものを開くか、あるいは現在のターミナルで source ~/.bashrc コマンドで再読み込みします。

Mac

Homebrew 経由でインストール
  1. brew install bash-completion でインストールします。

  1. インストール後、 Brew はインストールのパスを表示します。そのパスに補完スクリプトを置きます。

次の例は /usr/local/etc/bash_completion.d/ に補完スクリプトを置きます。

sudo curl \
    -L https://raw.githubusercontent.com/docker/compose/1.29.2/contrib/completion/bash/docker-compose \
    -o /usr/local/etc/bash_completion.d/docker-compose
  1. 自分の ~/.bash_profile に以下を追加します。

if [ -f $(brew --prefix)/etc/bash_completion ]; then
    . $(brew --prefix)/etc/bash_completion
fi
  1. 補完を使えるようにするには、 ~/.bash_profile を source で読み直すか、新しいターミナルを起動します。

MacPorts 経由でインストール
  1. bash 補完をインストールするには sudo port install bash-completion を実行します。

  1. ~/.bash_profile に以下の行を追加します。

if [ -f /opt/local/etc/profile.d/bash_completion.sh ]; then
    . /opt/local/etc/profile.d/bash_completion.sh
fi
  1. 補完を使えるようにするには、 ~/.bash_profile を source で読み直すか、新しいターミナルを起動します。

Zsh

コンピュータ上に oh-my-zsh がインストールされている のを確認します。

oh-my-zsh シェル上で自動補完を使うには、 ~/.zshrc のプラグイン一覧に dockerdocker-compose を追加します。以下の例で ... が示すのは、インストール済みの他の Zsh プラグインです。その後、変更を反映するために source ~/.zshrc を入力します。成功したかどうかを試すには、 docker ps を入力し、 Tab キーを押します。

plugins=(... docker docker-compose)
  1. 補完スクリプトを /path/to/zsh/completion に置きます(通常は ~/.zsh/completion/ )。

mkdir -p ~/.zsh/completion

curl \
    -L https://raw.githubusercontent.com/docker/compose/1.29.2/contrib/completion/zsh/_docker-compose \
    -o ~/.zsh/completion/_docker-compose
  1. ~/.zshrc$fpath のディレクトリに追加します。

fpath=(~/.zsh/completion $fpath)
  1. compinit を読み込み ~/.zshrc に追加されているか確認します。

autoload -Uz compinit && compinit -i
  1. それからシェルを再読み込みします。

exec $SHELL -l

利用可能な補完について

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

  • 利用可能な docker-compose コマンド

  • 個々のコマンドで利用可能なオプション

  • 指定した状態にあるサービス名(例:サービスが実行中、停止中、サービスの元になったイメージ、あるいは Dockerfile の元となるサービス)。docker-compose scale の補完では、サービス名に自動的に "=" を追加します。

  • 選択したオプションに対する引数。たとえば docker-compose kill -s は SIGHUP や SIGUSR1 のようなシグナルを補完します。

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

Compose のドキュメント

参考

Command-line Completion

https://docs.docker.com/compose/completion/