Saya menggunakan GitLab CI untuk menjalankan tes otomatis pada pengaturan Ubuntu 14.04. Pelari GitLab CI membuat pengguna baru, gitlab-runner , yang menjalankan semua tes. Sekarang pengujian ini menyertakan komponen GUI, jadi saya memerlukan tampilan X – yang saya paksakan bahkan tanpa tampilan fisik melalui ConnectedMonitor dan CustomEDID opsi di xorg.conf .
Masalahnya adalah ketika tes dimulai oleh pengguna gitlab-runner melalui DISPLAY=:0.0 ./runTestApp , saya mendapatkan “Tidak dapat terhubung ke tampilan :0.0” kesalahan. Saya dapat memperbaikinya dengan masuk sebagai pengguna biasa di workstation dan menjalankan sudo DISPLAY=:0.0 xhost + .
Namun:
- Saya belum menemukan cara untuk berhasil menjalankan
xhost +saat startup (mencoba memasukkannya ke/etc/rc.local) - Halaman manual mengatakan bahwa
xhost +sebenarnya sangat tidak aman, tetapi saya belum menemukan apa yang harus dilakukan. Sepertinya ini ada hubungannya dengan.Xauthorityfile (yang dimiliki pengguna biasa saya, tetapigitlab-runnertidak)
Apa cara terbaik untuk memberikan gitlab-runner akses permanen ke layar X?
Jawaban yang Diterima:
Pertama, untuk memberikan akses hanya ke Gitlab CI runner, Anda perlu menggunakan perintah yang lebih terbatas:
xhost +SI:localuser:gitlab-runner
Kedua, /etc/rc.local berjalan terlalu dini agar perintah ini dapat diterapkan, dan selanjutnya, Anda perlu menyetel $DISPLAY agar berhasil.
Itu tergantung pada bagaimana server X Anda dimulai. Jika Anda menggunakan LightDM, saya pikir Anda dapat membuatnya bekerja dengan menambahkan baris berikut ke /etc/lightdm/lightdm.conf :
greeter-setup-script=xhost +SI:localuser:gitlab-runner