Estoy tratando de ejecutar 2 cypress docker container en paralelo usando node js spawn
docker run -v path/to/ws:/e2e -w /e2e --network host cypress/included:8.0.0 --spec 'cypress/integration/cytorus-cache/1.feature' docker run -v path/to/ws:/e2e -w /e2e --network host cypress/included:8.0.0 --spec 'cypress/integration/cytorus-cache/2.feature'Falla con el siguiente error;
Xvfb exited with a non zero exit code. There was a problem spawning Xvfb. This is likely a problem with your system, permissions, or installation of Xvfb. ---------- Error: _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE)Básicamente, si ejecuto 4 procesos paralelos, 1 de ellos se conecta al servidor X11 y 3 recibe un error.
¿Cómo se puede manejar? Ya intenté configurar unset DISPLAY ya que Cypress se ejecuta en modo sin cabeza de forma predeterminada. Pero no ayudó.
Encontré el mismo problema al ejecutar pruebas de ciprés en paralelo. La solución para mí es eliminar --network host de su comando para evitar conflictos de puertos. Es posible que deba encontrar otro enfoque para acceder a los servicios en su host.
Por ejemplo, puede usar 172.17.0.1 para acceder al host en Docker para Linux.
Según la documentación de Cypress Docker ,
Cuando se ejecuta en Linux, Cypress necesita un servidor X11; de lo contrario, genera su propio servidor X11 durante la ejecución de la prueba. Cuando se ejecutan varias instancias de Cypress en paralelo, la generación de varios servidores X11 a la vez puede causar problemas a algunos de ellos. En este caso, puede iniciar por separado un solo servidor X11 y pasar la dirección del servidor a cada instancia de Cypress usando la variable DISPLAY.
Dado que el servidor X11 ya se estaba ejecutando en el servidor, acabo Xvfb :99 & , luego configuré la export DISPLAY=:99 . Y pasó la variable de entorno DISPLAY al contenedor docker cypress.