Iva*_*del 6 python bash ubuntu opencv docker
我有一台Docker机器,我正在安装OpenCV 2.4.11
但是,发生了一个错误,我确实找到了解决方案,但这是暂时的.
当我运行我使用的Python脚本时cv2,抛出此错误消息:
Error: libdc1394 error: Failed to initialize libdc1394
我看到这是解决我的问题的唯一线程,但暂时: ctypes错误:libdc1394错误:无法初始化libdc1394
我向我添加了以下行Dockerfile,但这并没有影响我的VM.
RUN ln /dev/null /dev/raw1394
但是,如果我在VM运行时输入该命令(docker run -it ...),它确实使事情有效!但是,这并没有解决我的问题,因为我需要它在启动时没问题,如果我重新进入VM,问题就会回来.
我的Dockerfile:
# Pull base image.
FROM library/ubuntu
MAINTAINER Ivan Seidel <ivanseidel@gmail.com>
RUN apt-get update
#
# Python
#
RUN apt-get install -y python python-dev python-pip python-virtualenv
#
# Node.js and NPM
#
RUN apt-get install -y nodejs nodejs-legacy npm git --no-install-recommends
#
# Install OpenCV
#
RUN apt-get install -y python-opencv --no-install-recommends
RUN ln /dev/null /dev/raw1394
#
# Clear cache
#
RUN rm -rf /var/lib/apt/lists/*
#
# Specific data
#
EXPOSE 80
COPY . /data
WORKDIR /data
RUN npm install --production
CMD ["bash"]
Run Code Online (Sandbox Code Playgroud)
好的.我花了整整一天时间.
基本上,之间的联系/dev/raw1394和/dev/null是不是永久性的.你可以打电话到你的虚拟机,ln /dev/null /dev/raw1394但是它会持续到你重新启动你的容器.
我必须做的,似乎是最简单但不完美的方法是在Container启动期间放置链接.
我认为将它作为一项服务运行,但对于一项简单的工作似乎太过分了.
我最终开始工作的方式(它不漂亮,但有效),是通过改变CMDDockerfile:
CMD sh -c 'ln -s /dev/null /dev/raw1394'; <your-script-here>