いつもの Docker container を peco で選択するやつです。
必要なもの
- docker
- peco
- bash or nyagos (キーバインドを設定して呼び出す)
使い方
bash または nyagos のキーバインドで呼び出すことを想定している。
私はCtrl + d
で呼び出すように設定している。
docker exec -it [ここでおもむろに Ctrl + d]
あとはpecoでcontainerを選択し、続く引数を入力していけば良い。
準備
キーバインドで呼び出せるようにするまでの準備方法
1. インストール
ここからバイナリを落とす。
docker-selector/releases
対応したバイナリが無くてgolangが入ってればこちらを。
$ go get -u github.com/ujiro99/docker-selector
2. キーバインドの設定
bashまたはnyagosでの設定例。
これを.bashrc
か.nyagos
に書くとCtrl + d
で呼び出せる。
- bash
peco-docker-selector() {
local l=$(\docker-selector -a)
READLINE_LINE="${READLINE_LINE:0:$READLINE_POINT}${l}${READLINE_LINE:$READLINE_POINT}"
READLINE_POINT=$(($READLINE_POINT + ${#l}))
}
bind -x '"\C-d": peco-docker-selector'
- nyagos
nyagos.bindkey("C_D", function(this)
local result = nyagos.eval('docker-selector.exe -a')
this:call("CLEAR_SCREEN")
return result
end)
背景
pecoでDockerを使いやすくする取り組みは過去にも色々あった。
- peco-docker を作ってみました
- docker+pecoでコンテナ(イメージ)操作
- peco で Docker の container ID を楽に選択する alias
- peco で docker exec
fzfにも存在する。
だけど、いずれもbashやzshを使うことを前提としており、nyagosユーザの私には使えなかった。MinGW bashへの移行やLuaスクリプトで書くことも考えたが、それなら初めからクロスプラットフォームで使えるようにしておこうと思い、golangで書いたのであった。