しばたテックブログ

気分で書いている技術ブログです。

PowerShell上でdockerコマンドの自動補完を行うposh-dockerモジュールについて

PowerShell Advent Calendar 2016 6日目の駆け込みに軽いネタを。

qiita.com

はじめに

Docker for Windowsのサイトを何か更新がないかと眺めていたら新しいモジュールが紹介されているのを発見しました。

docs.docker.com

posh-dockerモジュール

github.com

こいつはタイトルの通り、単体の機能を持たず、PowerShell上でdocker.exeを実行する際のタブキーによる自動補完を提供するものになります。

いまのところdockerコマンドのサブコマンドと、Dockerイメージ名・コンテナ名の補完をしてくれる様です。
動作についてはGitHub上にあるGifアニメーションを見てもらえば一目瞭然かと思います。

インストールおよび使用方法

インストールはInstall-ModuleするだけでOKです。

Install-Module posh-docker -Scope CurrentUser

使用するにはImport-Moduleを明示的に実行する必要があるので、予めプロファイルに以下のコードを仕込んでおけばよいでしょう。

Import-Module posh-docker

内部動作と注意事項

ざっとソースを読んだ限りだと、TabExpansion2関数を直接差し替えてコマンドの自動補完を実現しています。

このため他の自動補完を行うモジュール(例えばposh-gitなど)との組み合わせによってはうまく動かないかもしれません。
TabExpansionPlusPlusを使っている場合も気を付けた方が良いかもです。

一応私の環境では普通に動いてくれました。

まとめ

Advent Calendarに間に合わせるために軽くまとめてみました。

Windows上でdockerコマンドを多用する方は導入してみるのも良いかもしれません。