我正在尝试将dockerfile创建为opencv社交距离检测项目,作为学校项目的要求
我遇到的问题是使docker在基于GUI的环境中运行
通过将同行添加到run命令,我设法以某种方式设法使其在和linux 上运行

完整的命令

但它在Windows上不起作用
我应该将哪个命令添加到 docker run 以便可以在Windows上运行?
并且有没有办法使它即使不添加任何额外的行也能正常工作?
有Dockerfile

FROM ubuntu:20.04
FROM python:3.8

LABEL maintainer="muhammed akyuzlu ***@gmail.com"

ADD Social-distance-detection.py /
ADD coco.names /
ADD yolov4.cfg /
ADD yolov4.weights /




RUN apt-get update \
    && apt-get install -y \
    python3-pyqt5 \
    build-essential \
    cmake \
    git \
    wget \
    unzip \
    yasm \
    pkg-config \
    libswscale-dev \
    libtbb2 \
    libtbb-dev \
    libjpeg-dev \
    libpng-dev \
    libtiff-dev \
    libavformat-dev \
    libpq-dev \
    xserver-xephyr\
    && rm -rf /var/lib/apt/lists/*

RUN apt-get update -y \
    && apt-get install python3-pip -y \
    && pip install pafy \
    && pip install numpy  \
    && pip install youtube-dl \
    && pip install numpy \
    && pip install opencv-python


ENTRYPOINT ["python","./Social-distance-detection.py"]
这是我第一次使用Docker,所以您可以找到一些废话:)

最佳答案

首先,清理您的Dockerfile。我会建议:

FROM python:3.8

LABEL maintainer="muhammed akyuzlu ***@gmail.com"

COPY Social-distance-detection.py /
COPY coco.names /
COPY yolov4.cfg /
COPY yolov4.weights /

RUN apt-get update && \
    apt-get -y install \
    build-essential \
    cmake \
    git \
    wget \
    unzip \
    yasm \
    pkg-config \
    libswscale-dev \
    libtbb2 \
    libtbb-dev \
    libjpeg-dev \
    libpng-dev \
    libtiff-dev \
    libavformat-dev \
    libpq-dev \
    xserver-xephyr && \
    apt-get -y clean && \
    rm -rf /var/lib/apt/lists/* && \
    pip install --no-cache-dir pafy \
    numpy  \
    youtube-dl \
    PyQt5 \
    opencv-python

ENTRYPOINT [ "python" , "./Social-distance-detection.py" ]
我不会重复对您的问题发表评论,但对于其他更改,除非您需要ADD特定功能,否则应使用COPY而不是ADD。您应该只运行一次apt-get install,然后清理所有临时文件和缓存。您应该使用pip开关运行--no-cache-dir,以避免首先创建不必要的缓存。
现在是您的实际问题。正如@David Maze所建议的那样,您需要安装X Window Server,然后将其配置为接受所有连接并最终运行:
docker run -e DISPLAY=192.168.1.68:0.0 social-distance-detection -y https://youtu.be/hTUyzF4v9KA
192.168.1.68替换为主机的IP地址。
该过程在this article中进行了详细描述。

关于docker - 适用于Windows上基于GUI的环境的Docker,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63859293/

10-12 00:30