【问题标题】:Build docker image with python application using PyQt4 library使用 PyQt4 库使用 python 应用程序构建 docker 映像
【发布时间】:2018-03-09 04:23:19
【问题描述】:

我正在尝试 dockerise 一个小型 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

但是在图像构建时我该如何做呢?上述命令仅在映像已经构建时才有效,在 'docker run' 时。此外,如果主机是 aws 实例(因此没有 x 服务器),那会起作用吗?我不这么认为……

【问题讨论】:

    标签: python docker pyqt4 docker-build


    【解决方案1】:

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

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

    【讨论】:

    • 不,它没有用。同样的错误。不过谢谢你的建议,很有道理。
    • 您找到解决方案了吗?
    猜你喜欢
    • 1970-01-01
    • 2017-06-04
    • 2020-01-27
    • 1970-01-01
    • 2022-09-28
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 2022-01-13
    相关资源
    最近更新 更多