小さな python アプリケーションをドッキングしようとしています。Python コードは PyQt4 ライブラリを使用します。アプリには、イメージをビルドするときに実行するいくつかのテスト ユニットがあります。次のようなもの:
RUN [ "/bin/bash", "-c", "source activate conda_environment && python -m unittest tests/tests_html_consistency.py" ]
PythonコードのPyQt4ライブラリは、その処理を行うためにXサーバーを必要としますが、dockerにはXサーバーがないため、残念ながらイメージをビルドすると次のエラーが発生します:
python -m unittest: cannot connect to X server
他の同様のスタックに関する質問では、X サーバーのソケットを Docker ボリュームとして単純にマウントし、代わりにそれを使用するよう Docker に指示することで解決できることがわかりました。
docker run -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY TheImage
しかし、イメージのビルド時にこれを行うにはどうすればよいでしょうか? 上記のコマンドは、「docker run」時にイメージが既にビルドされている場合にのみ機能します。さらに、ホスト マシンが aws インスタンスの場合 (したがって x サーバーなし)、それは機能しますか? 私はそうは思わない...