Executando aplicativos GUI dentro de contêineres do Docker

Hoje eu precisei executar uma aplicação que tem interface gráfica dentro de contêiner docker e utilizei as instruções do artigo Run Cypress with a single Docker command como base para rodar em uma máquina Linux.

Para este exemplo, eu vou utilizar uma imagem do Cypress que tem instalado o navegador Chrome que será apresentado na interface gráfica para o usuário.

Vamos aos comandos!

DISPLAY=:0.0

xhost +

docker run --rm -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY -v $PWD:/e2e -w /e2e --entrypoint cypress cypress/included:3.4.0 open --project .