Sto usando GitLab CI per eseguire test automatici su una configurazione di Ubuntu 14.04. Il runner GitLab CI ha creato un nuovo utente, gitlab-runner , che esegue tutti i test. Ora questi test includono componenti della GUI, quindi ho bisogno di un display X, che impongo anche senza un display fisico tramite ConnectedMonitor e CustomEDID opzioni in xorg.conf .
Il problema è che quando un test viene avviato dall'utente gitlab-runner tramite DISPLAY=:0.0 ./runTestApp , ricevo un messaggio "Impossibile connettersi per visualizzare :0.0" errore. Posso risolverlo accedendo come utente normale sulla workstation ed eseguendo sudo DISPLAY=:0.0 xhost + .
Tuttavia:
- Non ho trovato un modo per eseguire correttamente
xhost +all'avvio (ho provato a inserirlo in/etc/rc.local) - La pagina man dice che
xhost +è in realtà molto insicuro, ma non ho scoperto cosa fare invece. Sembra che possa avere a che fare con un.Xauthorityfile (che il mio utente normale ha, magitlab-runnerno)
Qual è il modo migliore per fornire gitlab-runner accesso permanente al display X?
Risposta accettata:
Innanzitutto, per consentire l'accesso solo al runner Gitlab CI, è necessario utilizzare un comando più limitato:
xhost +SI:localuser:gitlab-runner
Secondo, /etc/rc.local viene eseguito troppo presto perché questo comando abbia effetto e, inoltre, è necessario impostare $DISPLAY affinché funzioni.
Dipende da come viene avviato il tuo server X. Se stai usando LightDM, penso che tu possa farlo funzionare aggiungendo la seguente riga a /etc/lightdm/lightdm.conf :
greeter-setup-script=xhost +SI:localuser:gitlab-runner