OCI 运行时执行失败:执行失败:(...)$PATH 中找不到可执行文件“:未知

新手上路,请多包涵

我已经通过 libav-tools 对一个安装了 ffmpeg 的应用程序进行了 docker 化。该应用程序启动没有问题,但是当 fluent-ffmpeg npm 模块尝试执行 ffmpeg 命令时出现问题,该命令未找到。当我想检查图像中设置的 ffmpeg 和 linux 发行版的版本时,我使用了 sudo docker exec -it c44f29d30753 "lsb_release -a" 命令,但它给出了以下错误: OCI runtime exec failed: exec failed: container_linux.go:296: starting container process caused "exec: \"lsb_release -a\": executable file not found in $PATH": unknown

然后我意识到,我尝试在图像或容器中运行的所有命令都给我同样的错误。

 OCI runtime exec failed: exec failed: container_linux.go:296: starting container process caused "exec: \"ffmpeg -a\": executable file not found in $PATH": unknown

这是我的 Dockerfile:

 FROM ubuntu:xenial
FROM node
RUN apt-get -y update
RUN apt-get --yes install libav-tools
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app
RUN npm install
COPY . /usr/src/app
RUN npm run build
ENV NODE_ENV production
EXPOSE 8000
CMD ["npm", "run", "start:prod"]

我很乐意寻求您的帮助。非常感谢!

原文由 Uğur Kaya 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 855
1 个回答

这发生在我的窗户上。这些命令中的任何一个都可以工作

在 Windows CMD 上(不切换到 bash)

 docker exec -it <container-id> /bin/sh

在 Windows CMD 上(切换到 bash 后)

 docker exec -it <container-id> //bin//sh

或者

winpty docker exec -it <container-id> //bin//sh

在 Git Bash 上

 winpty docker exec -it <container-id> //bin//sh

对于 Windows 用户,原因记录在 Git 的 ReleaseNotes 文件中,并在此处进行了很好的解释 - Bash in Git for Windows: Weirdness…

原因是试图确保 posix 路径最终正确地传递给 git 实用程序。出于这个原因,Git for Windows 包含一个修改过的 MSYS 层,它会影响命令参数。

Linux 和 Windows 用户

您可能需要使用 /bin/bash/bin/sh 运行,具体取决于容器中的 shell。使用 shell 而不是 bash 或反之亦然也会给你这个错误。

原文由 papigee 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题