0

小さな 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 サーバーなし)、それは機能しますか? 私はそうは思わない...

4

1 に答える 1

0

--build-argコマンドを使用してみてください:

docker build -t yourContainer --build-arg DISPLAY=$DISPLAY .

于 2017-09-27T15:54:39.637 に答える