gpt4 book ai didi

python - 如何使用 Ubuntu 在 Docker 中持久化 'ln'

转载 作者:IT老高 更新时间:2023-10-28 21:36:17 28 4
gpt4 key购买 nike

我有一台正在安装 OpenCV 2.4.11 的 Docker 机器

但是,发生了一个错误,我确实找到了解决方案,但这只是暂时的。

当我运行使用 cv2 的 Python 脚本时,会抛出以下错误消息:

错误:libdc1394 错误:初始化 libdc1394 失败

我看到这是解决我的问题的唯一线程,但暂时: ctypes error: libdc1394 error: Failed to initialize libdc1394

我在 Dockerfile 中添加了以下行,但这并没有影响我的 VM。

运行 ln/dev/null/dev/raw1394

但是,如果我在 VM 运行时输入该命令(docker run -it ...),它确实可以正常工作!但是,这并没有解决我的问题,因为我需要它在启动时正常,如果我重新进入虚拟机,问题又回来了。


我的 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"]

最佳答案

好的。我花了一整天的时间。

基本上,/dev/raw1394 之间的链接和 /dev/null不是永久性的。你可以 bash 进入你的虚拟机,调用 ln /dev/null /dev/raw1394 ,但它只会持续到您重新启动容器。

我必须做的,这似乎是最简单但不是完美的方法,就是在容器启动期间放置链接。

我认为将其作为服务运行,但对于一项简单的工作来说似乎太多了。

我最终开始工作的方式,(它不是很漂亮,但很有效)是通过更改 CMD Dockerfile:

CMD sh -c 'ln -s /dev/null /dev/raw1394'; <your-script-here>

关于python - 如何使用 Ubuntu 在 Docker 中持久化 'ln',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31768441/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com