私はGitLabCIを使用して、Ubuntu14.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
次に、/etc/rc.local このコマンドを有効にするには早すぎます。さらに、$DISPLAYを設定する必要があります それが機能するために。
Xサーバーの起動方法によって異なります。 LightDMを使用している場合は、/etc/lightdm/lightdm.confに次の行を追加することで機能させることができると思います。 :
greeter-setup-script=xhost +SI:localuser:gitlab-runner