角待ちは対空

おもむろガウェイン

dockerコマンドの補完

最近サボってるけど、仕事が忙しい。そのうちつじつまを合わせる。

docker はサブコマンドもオプションも多く人類が覚えられるものではないのでシェルの補完機能を使うと良い。

実は公式に提供されていてMacでインストーラを使ってインストールした場合

% ls /Applications/Docker.app/Contents/Resources/etc
docker-compose.bash-completion docker-machine.bash-completion docker.bash-completion         docker.zsh-completion
docker-compose.zsh-completion  docker-machine.zsh-completion  docker.fish-completion

という感じで置かれている。 docker-composedocker-machine の補完もある。

zshならば fpath 内に置 くなど各シェルの作法インストールすれば補完が効くようになる。

zshに場合(bashやfishはしらない)は、サブコマンドやオプションだけでなくハッシュ値も保管してくれる。

% docker run <tabを押す>
Completing images
1007ab9c4581  92724e305c38  40fa36d8e79b  ad2648c45977  5df315b047a3  25c39caa1599
30e6dc1b9dcf  6e9f5ece58d0  354447abe1c5  d59f608eb9c9  4c3bd6be5c7a  b3f973d4e73b
64c2d103360e  01f95bd17056  54437a6ec1da  84ad0e94bd24  4d1f0af3a856  25723f5fbfb7
9a98002e9550  c7cf82e40153  b4130a0cb60a  cfa45172fcf6  0b31442c6ffe  857a11b97531
af0bae28e276  a530821a401d  90149e0c6c6f  a3c3a54b0eed  a5593d6de89c  ea7cd87f1988
d0fe9dafe363                                                                        -- <none>          in <none>
138bd936fa29                                                                        -- 1.9             in golang
138bd936fa29                                                                        -- 1.9.2           in golang
5709795eeffa                                                                        -- 5.7             in mysql
8ba3235ead08                                                                        -- latest          in ****************
af7255f30d48                                                                        -- latest          in ****************
ba52c9ef0f5c                                                                        -- 1.8             in golang
ec2b525211f3                                                                        -- latest          in ****************
Completing repositories
****************                   golang                            ****************                ****************                mysql

今年一番ライフチェンジングだった。

ファイル自体はgithubで普通に公開されているものなのでそこから取ってくるのでも良い。 GitHub - felixr/docker-zsh-completion: zsh completion for docker

blog.yux3.net