2017-02-10 88 views
0

我在docker容器中运行ubuntu 14.04并安装了opencv。每次运行时,我都会收到以下错误:OpenCV: libdc1394 error: Failed to initialize libdc1394。链接的/ dev/null的设备文件的技术似乎工作,但它不是在泊坞窗容器执着,即使我有打开CV错误未能初始化raw1394持久码头

RUN ln /dev/null /dev/raw1394 
在我的搬运工文件

如果我运行像

docker-compose run <container> bash 

该错误将持续在该会话中。我可以将什么行添加到我的docker文件中,以摆脱此错误消息?

回答

1

在Dockerfile中运行ln /dev/null /dev/raw1394不会帮助您,因为/dev不是docker映像的一部分。你可以通过添加一个volume mount来解决这个问题。示例Dockerfiledocker-compose.yml看起来像这样:

[[email protected] ~]$ cat Dockerfile 
FROM ubuntu:14.04 
RUN apt-get update && \ 
    apt-get install -y \ 
     libdc1394-22-dev \ 
     libdc1394-22 \ 
     libdc1394-utils \ 
     python-opencv && \ 
    rm -rf /var/lib/apt/lists/* 

[[email protected] ~]$ cat docker-compose.yml 
version: '2' 
services: 
    opencv: 
    build: . 
    command: python -c "import cv2; print cv2.__version__" 
    volumes: 
     - /dev/null:/dev/raw1394 

[[email protected] ~]$ sudo docker-compose up 
Recreating fedora_opencv_1 
Attaching to fedora_opencv_1 
opencv_1 | 2.4.8 
fedora_opencv_1 exited with code 0