emacs
silex/emacs:29.2-alpine
현재 Distrobox 컨테이너(Docker 컨테이너, Debian 이미지도 사용해 보았지만)에서 실행을 자동화하려고 하는데 silex/emacs:29.2
오류가 발생합니다 emacs: Could not open file: /dev/tty
. 이것이 내가 하는 일이다:
distrobox create --name test --image silex/emacs:29.2-alpine --home /home/dbhome
distrobox enter test -nw -- /nix/store/emacs/bin/emacs-29.2
위의 오류가 발생합니다. 그러나 먼저 실행 distrobox enter test -nw
한 다음 distrobox 컨테이너에서 실행이 성공적으로 시작됩니다 /nix/store/emacs/bin/emacs-29.2
. emacs
문제는 emacs를 자동으로 시작하고 싶기 때문에 컨테이너 외부에서 실행되는 일련의 명령을 통해 컨테이너에서 emacs를 시작할 수 있는 방법을 찾아야 한다는 것입니다.
emacs: Could not open file: /dev/tty
내가 이렇게 하면 어떤 결과가 나올지 아는 사람 있나요 ? 일반 컨테이너 대신 Distrobox를 사용하는 이유는 결국 Distrobox의 ootb 지원을 사용하여 호스트의 X11 소켓에 연결하기를 원하기 때문입니다.
편집 : strace
오류가 확인되었습니다-1 ENXIO (No such device or address)
docker exec
EDIT2: 실행하는 명령의 일부를 바꾸면 문제가 사라집니다 distrobox enter
. 명령은 ;로 docker exec
끝납니다 . CONTAINERNAME su USERNAME -c COMMAND
직접 사용하면 문제가 해결됩니다 CONTAINERNAME COMMAND
.