コマンドライン補完
Compose には bash 用あるいは zsh 用の コマンド補完(command completion)が用意されています。
コマンド補完のインストール
Bash
bash 補完がインストールされていることを確認します。
Linux
-
利用している Linux OSであれば(最小インストールではない)、bash 補完が利用できるはずです。
-
補完スクリプトを
/etc/bash_completion.d/に置きます。
$ sudo curl \
-L https://raw.githubusercontent.com/docker/compose/v2.4.1/contrib/completion/bash/docker-compose \
-o /etc/bash_completion.d/docker-compose
- ターミナルを一新します。
具体的にはいったん閉じてから新たなターミナルを起動するか、あるいは現在のターミナルにおいて
source ~/.bashrcコマンドを実行して設定をリロードします。
Mac
Homebrew によるインストール
brew install bash-completionによりインストールします。-
インストール後に Brew がインストール先のパスを表示します。 補完スクリプトをそのパスに置きます。
補完スクリプトはたとえば
/usr/local/etc/bash_completion.d/に置きます。$ sudo curl \ -L https://raw.githubusercontent.com/docker/compose/v2.4.1/contrib/completion/bash/docker-compose \ -o /usr/local/etc/bash_completion.d/docker-compose -
以下を
~/.bash_profileに追加します。if [ -f $(brew --prefix)/etc/bash_completion ]; then . $(brew --prefix)/etc/bash_completion fi - 補完を利用するため
~/.bash_profileを source で取り込むか、あるいは新たな端末画面を起動します。
MacPorts によるインストール
-
sudo port install bash-completionを実行して bash 補完をインストールします。 -
以下を
~/.bash_profileに追加します。if [ -f /opt/local/etc/profile.d/bash_completion.sh ]; then . /opt/local/etc/profile.d/bash_completion.sh fi -
補完を利用するため
~/.bash_profileを source で取り込むか、あるいは新たな端末画面を起動します。
Zsh
oh-my-zsh がインストールされているかどうかを確認します。
oh-my-zsh シェルがある場合
~/.zshrc内のプラグインリストにdockerとdocker-composeを加えます。
これにより oh-my-zsh シェル内での自動補完機能を有効にします。
以下の例において...の部分は、以前からインストールされている Zsh プラグインを表わします。
その後にsource ~/.zshrcを実行して、変更を有効にします。
うまく設定できているかどうかは、docker psと入力してから、タブ キーを入力します。
plugins=(... docker docker-compose)
oh-my-zsh シェルがない場合
/path/to/zsh/completion(通常は~/.zsh/completion/)に補完スクリプトを置きます。
$ mkdir -p ~/.zsh/completion
$ curl \
-L https://raw.githubusercontent.com/docker/compose/v2.4.1/contrib/completion/zsh/_docker-compose \
-o ~/.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 での作業を、入力は速くミスは少なく!