使用PyQt4库建立码头图像与python应用程序

问题描述:

我想dockerise一个小型的python应用程序。 python代码使用PyQt4库。该应用程序有一些测试单元,我在构建映像时运行。像下面这样:使用PyQt4库建立码头图像与python应用程序

RUN [ "/bin/bash", "-c", "source activate conda_environment && python -m unittest tests/tests_html_consistency.py" ] 

在Python代码的PyQt4的库需要一个X服务器做它的事情,但码头工人没有一个,所以,不幸的是,当我建我碰到下面的错误形象:

python -m unittest: cannot connect to X server 

在其他类似的堆栈问题,我发现一个可能的解决方案是简单地安装插座X服务器作为一个泊坞窗的体积,并告诉码头工人使用该代替。

docker run -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY TheImage 

但是我如何在图像构建时做到这一点?上述命令仅在图像已经构建时运行,即在“码头运行”时。而且,如果主机是aws实例(因此没有x服务器)是否可以工作?我不这么认为......使用--build-arg命令

尝试这样:

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

+0

不,这我以前不工作。同样的错误。但谢谢你的建议,这是有道理的。 – DarioB