728x90
git bash를 이용하여 docker 실습을 진행하던 중 다음과 같은 오류가 났습니다.
the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty'
git 설치시 터미널 설정을 mintty 로 한 경우 발생하는 오류이기 때문에 위의 에러 메시지에서 추천한대로 winpty 키워드를 사용하거나 powershell을 사용하면 됩니다.
1. git bash + winpty 키워드 사용
git bash를 그대로 사용하고 싶다면 Docker 컨테이너 내에서 명령어를 실행할 때 winpty 키워드를 붙이면 됩니다.
# 예시
winpty docker exec -ti test /bin/bash
2. powershell 사용
winpty 키워드 없이 바로 사용해도 됩니다.
경로 문제로 실패한 경우
만약 winpty 키워드를 사용했음에도 오류가 났다면 경로에 문제가 있을 수도 있습니다.
저의 경우, /bin/bash의 형태로 절대경로로 지정하여 문제가 발생했습니다.
OCI runtime exec failed: exec failed: unable to start container process: exec: "
C:/Program Files/Git/usr/bin/bash.exe": stat C:/Program Files/Git/usr/bin/bash.e
xe: no such file or directory: unknown
해결 방법
- 상대 경로로 지정하기
winpty docker exec -ti test bash
/bin/bash와 같은 절대 경로로 지정하면 루트 디렉토리(/)부터 시작하여 파일의 위치를 정확히 지정합니다.
따라서 컨테이너 내에서 해당 경로에 bash 파일이 존재하지 않아 실행되지 않는 경우, 경로 탐색에 실패할 수 있기 때문에 컨테이너 내부의 파일 위치를 정확히 모르거나, 동일한 이름의 파일이 다른 경로에 있을 경우에 상대 경로를 사용하거나 $PATH 환경 변수에 설정된 경로에서 파일을 찾을 수 있습니다.
728x90