私は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