ubuntu 用于Python3和OpenCV的停靠文件

z4bn682m  于 2023-02-15  发布在  Python
关注(0)|答案(1)|浏览(112)

我需要有一个Dockerfile与Python3和最新版本的OpenCV。我写的Dockerfile如下所述:

FROM ubuntu

#Install OpenCV
RUN apt-get update &&\
    apt-get install -y cmake

RUN apt-get install -y gcc g++

RUN apt-get install -y python3-dev python3-numpy

# To support GUI features
RUN apt-get install -y libavcodec-dev libavformat-dev libswscale-dev

# To support GTK 2
RUN apt-get install -y libgtk2.0-dev

# To support GTK 3
RUN apt-get install -y libgtk-3-dev

#Optional dependencies
RUN apt-get install -y libpng-dev
RUN apt-get install -y libjpeg-dev
RUN apt-get install -y libopenexr-dev
RUN apt-get install -y libtiff-dev
RUN apt-get install -y libwebp-dev

# Clone OpenCV repo
RUN apt-get install -y git
RUN git clone https://github.com/opencv/opencv.git

#Compile
RUN mkdir /opencv/build && \
    cd /opencv/build
RUN cmake ..
RUN make

但是,当我运行它时,它给了我下面的错误与cmake

Step 17/27 : RUN cmake ..
 ---> Running in 3dca32df2036
CMake Error: The source directory "/" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
The command '/bin/sh -c cmake ..' returned a non-zero code: 1

你知道我哪里做错了吗?

mklgxw1f

mklgxw1f1#

您只需要链接最后的RUN指令:

#Compile
RUN mkdir /opencv/build && \
    cd /opencv/build && \
    cmake .. && \
    make

解释:

RUN语句创建一个新的图像层并执行指定的shell命令。这意味着每个RUN语句都将在一个单独的shell中运行该命令,因此不会保留前一个RUN的当前目录(通过仔细查看错误消息,您可以看到CMake当前目录为/)。
您可以在Docker文档中找到有关RUN语句的更多信息,我还建议您阅读编写Docker文件的最佳实践。

相关问题