我正在使用 GitLab CI 在 Ubuntu 14.04 设置上运行自动化测试。GitLab CI 运行程序创建了一个新用户 ,gitlab-runner
该用户执行所有测试。现在这些测试包括 GUI 组件,所以我需要一个 X 显示 - 即使没有物理显示,我也ConnectedMonitor
可以CustomEDID
通过xorg.conf
.
问题是,当用户通过 启动测试时gitlab-runner
,DISPLAY=:0.0 ./runTestApp
我收到“无法连接到显示:0.0”错误。我可以通过以普通用户身份登录工作站并运行来修复它sudo DISPLAY=:0.0 xhost +
。
然而:
xhost +
(尝试将其放入/etc/rc.local
)xhost +
实际上非常不安全,但我还没有找到该怎么做。感觉它可能与一个文件有关.Xauthority
(我的普通用户有,但gitlab-runner
没有)gitlab-runner
永久访问 X 显示的最佳方式是什么?
首先,要仅授予对 Gitlab CI 运行程序的访问权限,您需要使用更受限制的命令:
xhost +SI:localuser:gitlab-runner
Run Code Online (Sandbox Code Playgroud)
其次,/etc/rc.local
运行得太早,该命令无法生效,而且您需要进行设置$DISPLAY
才能使其工作。
这取决于您的 X 服务器是如何启动的。如果您使用 LightDM,我认为您可以通过添加以下行来使其工作/etc/lightdm/lightdm.conf
:
greeter-setup-script=xhost +SI:localuser:gitlab-runner
Run Code Online (Sandbox Code Playgroud)