PoC - Chromium with openGL support for webrecorder stack
Ubuntu 16.04 was used for this demonstration.
- Ubuntu with X11 server
nvidiaGPU- docker
- nvidia runtime for docker engine
- nvidia driver > 390 (tested with
nvidia-396)
- Allow incoming connections to your X11 server (Run
xhost +on your host OS) - Build the new
oldwebtoday/sphepherdandoldwebtoday/chromium-opengl:65images by runningdocker-compose buildfrom the terminal - Restart your
webrecorder's stack
This modified version of oldwebtoday/sphepherd starts the browsers with:
nvidiaruntime (equivalent todocker run --runtime=nvidia)- a bind of
/tmp/X11-unix:X0between the host and browsers. - privileged mode (equivalent to
docker run --privileged)
Instead of using oldwebtoday/base-browser as base image, oldwebtoday/chromium-opengl:65 is build from glvnd-runtime and use TurboVNC (instead of X11-vnc and Xvfb)
- X11 socket is shared between host and the docker containers.
- vglrun from VirtualGl wrap the
chromium-browserprocess. it redirects GPU calls inside the container to the host through the previous socket - The flag
--disable-gpu-sandboxis passed to Chromium. The normal behaviour of Chromium use some forks, and is bypassingvglrun. This flag avoid this.