UPDATE
you can now install goinside
command line tool with:
sudo npm install -g goinside
and go inside a docker container with a proper terminal size with:
goinside docker_container_name
Logic behind goinside
thanks to @VonC answer we've got a solution for this problem with a simple bash snippet that we put in ~/.profile
:
goinside(){
docker exec -it $1 bash -c "stty cols $COLUMNS rows $LINES && bash";
}
export -f goinside
now you are able to get inside a docker container without terminal size issues with:
$ goinside containername
remember to source ~/.profile
before using the goinside
function.
enabling autocompletion in bash
(as it's shared in one of comments below) if you want to enable autocompletion for goinside
you can use this snippet in .profile
:
goinside(){
docker exec -it $1 bash -c "stty cols $COLUMNS rows $LINES && bash";
}
_goinside(){
COMPREPLY=( $(docker ps --format "{{.Names}}" -f name=$2) );
}
complete -F _goinside goinside;
export -f goinside;
enabling autocompletion in zsh
if you are using zsh
as your default terminal you can use this snippet inside your ~/.zshrc
file:
autoload bashcompinit
bashcompinit
goinside(){
docker exec -it $1 bash -c "stty cols $COLUMNS rows $LINES && bash";
}
_goinside(){
COMPREPLY=( $(docker ps --format "{{.Names}}" -f name=$2) );
}
complete -F _goinside goinside;
export goinside;
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…