peco에서 Docker container ID를 선택합니다.

평소 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에도 존재한다.
  • fzf support for docker #760

  • 하지만 모두 bash와 zsh를 사용한다고 가정하고 nyagos 사용자의 나에게는 사용할 수 없었다. MinGW bash로의 이행이나 Lua 스크립트로 쓰는 것도 생각했지만, 그렇다면 처음부터 크로스 플랫폼으로 사용할 수 있도록 해 두려고 생각해, golang로 쓴 것이었다.

    좋은 웹페이지 즐겨찾기