$ xhost
access control enabled, only authorized clients can connect
xterm
funciona:
$ docker run --rm -it --network host \
--volume ~/.Xauthority:/root/.Xauthority:ro \
--env DISPLAY \
alpine:3.19 sh -euxc 'apk add xterm; exec xterm'
chromium
abre uma janela e parece receber pressionamentos de tecla, mas a janela está vazia ( output ):
$ docker run --rm -it --network host \
--volume ~/.Xauthority:/root/.Xauthority:ro \
--env DISPLAY \
alpine:3.19 sh -euxc 'apk add chromium; exec chromium --no-sandbox'
Se eu permitir conexões locais, xhost
ele funcionará:
$ xhost +local:
$ xhost
access control enabled, only authorized clients can connect
LOCAL:
$ docker run --rm -it --network host \
--volume ~/.Xauthority:/root/.Xauthority:ro \
--env DISPLAY \
alpine:3.19 sh -euxc 'apk add chromium; exec chromium --no-sandbox'
$ xhost -local:
Pode-se especular aqui que ele inicia processos não-root que não têm acesso /root/.Xauthority
e é por isso que falha. Então, sob qual usuário? Para que eu pudesse fornecer .Xauthority
a todos os interessados. Como faço para depurar isso? Como faço para que isso funcione?