【发布时间】:2020-09-12 10:20:21
【问题描述】:
我正在尝试为 opencv 社交距离检测项目制作一个 dockerfile 作为学校项目的要求
我遇到的问题是让 docker 在基于 GUI 的环境中运行
不知何故,我设法通过在运行命令中添加同伴行使其在 linux 上运行
-e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix:ro
完整的命令
sudo docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix:ro 社交距离检测 -y https://youtu.be/hTUyzF4v9KA
但它在 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,所以你可以找到一些废话:)
【问题讨论】:
-
我不认为这真的有效(虽然不能权威地说):既然你运行的是 Linux 容器,你需要一个兼容 Linux(X Window System)的显示系统,甚至然后设置相当挑剔。六个SO Docker Windows tkinter questions 基本上没有答案。你能在原生 Windows Python 上运行它,使用虚拟环境进行包隔离吗?
-
如何在本机 Windows Python 上运行它?我需要更改 Dockerfile 中的某些内容吗?
-
完全删除 Dockerfile,安装 Python,并使用它来运行您的交互式 GUI 应用程序(没有 Docker)。
-
关于无意义的行 - 一个接一个地使用两行 FROM 是没有意义的 - 第一个基本上被忽略了,你的实际基础映像也已经安装了 Python,所以安装系统版本是非常糟糕的主意 - 你不知道你实际使用的是哪一个。最后,你永远不应该有两个
RUN指令一个接一个,而是把所有东西都放在一个。 -
@DavidMaze 首先谢谢你其次我很想不安装 docker 并使用它,但正如我提到的那样,这是一个学校项目,他们要求在 docker 容器中现在我需要解释如何安装我的文档中的 X Window Server