我已经通过 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 许可协议
这发生在我的窗户上。这些命令中的任何一个都可以工作
在 Windows CMD 上(不切换到 bash) :
在 Windows CMD 上(切换到 bash 后) :
或者
在 Git Bash 上:
对于 Windows 用户,原因记录在 Git 的 ReleaseNotes 文件中,并在此处进行了很好的解释 - Bash in Git for Windows: Weirdness… :
Linux 和 Windows 用户
您可能需要使用
/bin/bash
或/bin/sh
运行,具体取决于容器中的 shell。使用 shell 而不是 bash 或反之亦然也会给你这个错误。