emacs
我目前正在尝试在 Distrobox 容器(Docker 容器silex/emacs:29.2-alpine
,尽管我也尝试过使用 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
。