Ich verwende GitLab CI, um automatisierte Tests auf einem Ubuntu 14.04-Setup auszuführen. Der GitLab CI-Runner hat einen neuen Benutzer erstellt, gitlab-runner
, die alle Tests ausführt. Jetzt beinhalten diese Tests GUI-Komponenten, also brauche ich eine X-Anzeige – die ich auch ohne eine physische Anzeige über den ConnectedMonitor
erzwinge und CustomEDID
Optionen in der xorg.conf
.
Das Problem besteht darin, dass beim Start eines Tests durch den Benutzer gitlab-runner
über DISPLAY=:0.0 ./runTestApp
, erhalte ich die Meldung „Verbindung zum Display:0.0 konnte nicht hergestellt werden“ Error. Ich kann es beheben, indem ich mich als normaler Benutzer auf der Workstation anmelde und sudo DISPLAY=:0.0 xhost +
ausführe .
Allerdings:
- Ich habe keine Möglichkeit gefunden,
xhost +
erfolgreich automatisch auszuführen beim Start (versucht, es in/etc/rc.local
einzufügen ) - Die Manpage sagt, dass
xhost +
ist eigentlich sehr unsicher, aber ich habe nicht herausgefunden, was ich stattdessen tun soll. Es fühlt sich an, als hätte es mit einer.Xauthority
zu tun Datei (die mein normaler Benutzer hat, abergitlab-runner
nicht)
Wie gebe ich gitlab-runner
am besten an ständigen Zugriff auf die X-Anzeige?
Akzeptierte Antwort:
Um zunächst nur dem Gitlab CI-Runner Zugriff zu gewähren, müssen Sie einen eingeschränkteren Befehl verwenden:
xhost +SI:localuser:gitlab-runner
Zweitens /etc/rc.local
läuft viel zu früh, als dass dieser Befehl wirksam werden könnte, und außerdem müssen Sie $DISPLAY
setzen damit es funktioniert.
Es hängt davon ab, wie Ihr X-Server gestartet wird. Wenn Sie LightDM verwenden, können Sie es meiner Meinung nach zum Laufen bringen, indem Sie die folgende Zeile zu /etc/lightdm/lightdm.conf
hinzufügen :
greeter-setup-script=xhost +SI:localuser:gitlab-runner