game-ci / docker

Series of CI-specialised docker images for Unity.
https://hub.docker.com/u/unityci
MIT License
400 stars 124 forks source link

xvfb-run is not invoked as root user when using runAsHostUser #240

Open mfbrantner opened 7 months ago

mfbrantner commented 7 months ago

Bug description

When using the runAsHostUser flag in unity-builder and unity-test-runner, xvfb-run is invoked without root privileges. This causes the following errors: _XSERVTransmkdir: ERROR: euid != 0,directory /tmp/.X11-unix will not be created. _XSERVTransmkdir: Owner of /tmp/.X11-unix should be set to root

How to reproduce

Run unity-builder or unity-test-runner with runAsHostUser on a self-hosted runner.

Full log Workflow file used

Expected behavior

xvfb-run should not throw any errors.

Additional details

A similar issue is also described here and here.

It seems that adding -nolisten unix to the arguments that are passed to Xvfb fixes this issue.

My proposal would be to add --server-args="-nolisten unix" to the line where the alias for the unity-editor is created: https://github.com/game-ci/docker/blob/33cc94c160e496034f2b72b39a424b5a5daffbe2/images/ubuntu/editor/Dockerfile#L64

However, I am unsure if this change would have any unforeseen consequences.