레이블이 tput인 게시물을 표시합니다. 모든 게시물 표시
레이블이 tput인 게시물을 표시합니다. 모든 게시물 표시

docker container lines cols 초기값 변경

# 도커 컨테이너에 접속해서 처음 긴명령을 타이핑하거나 vim 을 실행 했을때
# 폭24, 라인80 위치를 넘어가서 덮어 씌워지는 현상이 있다.
# 터미널 크기를 조정하면 그때부터 실제 터미널 폭,라인 크기가 제대로 반영된다.
# 아래 화면을 보면 vim 크기가 터미널 보다 작게 설정된 것을 볼 수 있다.

# 도커 컨테이너를 띄우고 접속을 하면 터미널의 크기가 80x24 로 되어 있다.
# tput 으로 컨테이너의 라인,컬럼을 확인해보자
docker exec -it ysoftman_container tput lines
docker exec -it ysoftman_container tput cols

# 호스트의 실제 터미널의 창 크기($COLUMNS, $LINES) 값을 컨테이너 접속시 전달한다.
docker exec -u ysoftman -e COLUMNS=$COLUMNS -e LINES=$LINES -it ysoftman_centos /bin/bash

# .sh 로 실행해야 할 경우 $COLUMSN, $LINES 는 사용할 수 없어 tput 을 사용한다.
docker exec -u ysoftman -e COLUMNS=$(tput cols) -e LINES=$(tput lines) -it ysoftman_centos /bin/bash

# 관련 이슈 내용 참고

# 참고로 ssh 프로토콜에는 클라이언트의 터미널 크기가 변경될때 크기 다음과 같은 정보를 보낸다.
byte      SSH_MSG_CHANNEL_REQUEST
uint32    recipient channel
string    "window-change"
boolean   FALSE
uint32    terminal width, columns
uint32    terminal height, rows
uint32    terminal width, pixels
uint32    terminal height, pixels