使用PyQt4库使用python应用程序构建docker镜像

时间:2017-09-27 15:36:56

标签: python docker pyqt4 docker-build

我正在尝试将一个小的python应用程序停靠。 python代码使用PyQt4库。该应用程序有一些我在构建图像时运行的测试单元。如下所示:

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

python代码中的PyQt4库需要一个X服务器来完成它的工作,但是docker没有它,因此,当我构建映像时,我得到以下错误:

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

但是我如何在图像构建时执行此操作?上述命令仅在图像已经构建时才会起作用,在#dock; runer'时间。而且,如果主机是一个aws实例(因此没有x服务器)那会起作用吗?我不这么认为......

1 个答案:

答案 0 :(得分:0)

尝试使用--build-arg命令:

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