Používám GitLab CI ke spouštění automatických testů v nastavení Ubuntu 14.04. GitLab CI runner vytvořil nového uživatele, gitlab-runner , který provede všechny testy. Nyní tyto testy zahrnují komponenty grafického uživatelského rozhraní, takže potřebuji displej X – který vynutím i bez fyzického displeje prostřednictvím ConnectedMonitor a CustomEDID možnosti v xorg.conf .
Problém je v tom, že když test spustí uživatel gitlab-runner přes DISPLAY=:0.0 ./runTestApp , zobrazí se mi „Nelze se připojit k zobrazení :0.0“ chyba. Mohu to opravit tak, že se přihlásím jako běžný uživatel na pracovní stanici a spustím sudo DISPLAY=:0.0 xhost + .
Nicméně:
- Nenašel jsem způsob, jak úspěšně automaticky spustit
xhost +při spuštění (zkusili jste to vložit do/etc/rc.local) - Manuál říká, že
xhost +je ve skutečnosti velmi nejistá, ale nezjistil jsem, co dělat místo toho. Zdá se, že to může souviset s.Xauthoritysoubor (který má můj běžný uživatel, alegitlab-runnerne)
Jaký je nejlepší způsob, jak dát gitlab-runner trvalý přístup k displeji X?
Přijatá odpověď:
Za prvé, chcete-li poskytnout přístup pouze běhu Gitlab CI runner, musíte použít omezenější příkaz:
xhost +SI:localuser:gitlab-runner
Za druhé, /etc/rc.local běží příliš brzy na to, aby se tento příkaz projevil, a dále musíte nastavit $DISPLAY aby to fungovalo.
Záleží na tom, jak je váš X server spuštěn. Pokud používáte LightDM, myslím, že to můžete zprovoznit přidáním následujícího řádku do /etc/lightdm/lightdm.conf :
greeter-setup-script=xhost +SI:localuser:gitlab-runner