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.Xauthority
soubor (který má můj běžný uživatel, alegitlab-runner
ne)
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