我已经通过libav-tools安装了一个安装了ffmpeg的应用程序.该应用程序启动没有问题,但当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
Run Code Online (Sandbox Code Playgroud)
这是我的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"]
Run Code Online (Sandbox Code Playgroud)
我会请求你的帮助.非常感谢你!
pap*_*gee 51
这发生在我的窗户上.任何这些命令都可以
在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
注意:您可能需要运行use /bin/bash
或/bin/sh
,具体取决于容器中的shell.
原因记录在Git的ReleaseNotes文件中,这里有很好的解释 - 用于Windows的Git中的Bash:怪异......
"原因与尝试确保posix路径最终正确传递给git实用程序有关.因此,Git for Windows包含一个影响命令参数的修改过的MSYS层."
Bij*_*Oli 18
docker exec -it <containerId> sh
Run Code Online (Sandbox Code Playgroud)
Hen*_*ger 17
我有这个,因为我的订单错误很简单.我打了电话
[WRONG] docker run <image> <arguments> <command>
当我应该使用
docker run <arguments> <image> <command>
类似问题的解决方案相同:https://stackoverflow.com/a/50762266/6278
BMi*_*tch 12
摆脱你的命令周围的报价.引用它时,docker尝试将完整字符串"lsb_release -a"
作为命令运行,该命令不存在.相反,您希望lsb_release
使用参数运行命令-a
,而不是引号.
sudo docker exec -it c44f29d30753 lsb_release -a
Run Code Online (Sandbox Code Playgroud)
注意,容器名称后面的所有内容都是在容器内运行的命令和参数,docker不会将任何这些作为docker命令的选项处理.
小智 10
如果@papigee解决方案不起作用,可能您没有权限.
我试过@papigee解决方案,但没有sudo就行不通.
我做了:
sudo docker exec -it <container id or name> /bin/sh
Run Code Online (Sandbox Code Playgroud)
小智 10
我用这个命令解决了这个问题:
1-运行容器
# docker run -d <image-name>
Run Code Online (Sandbox Code Playgroud)
2- 列出容器
# docker ps -a
Run Code Online (Sandbox Code Playgroud)
3- 使用容器 ID
# docker exec -it <container-id> /bin/sh
Run Code Online (Sandbox Code Playgroud)
小智 5
@papigee 应该可以在 Windows 10 上正常工作。我正在使用带有 git bash 的集成 VSCode 终端,这对我来说总是有效。
winpty docker exec -it <container-id> //bin//sh
Run Code Online (Sandbox Code Playgroud)
小智 5
我遇到了这个问题,结果我需要这样做:
docker run ${image_name} bash -c "${command}"
Run Code Online (Sandbox Code Playgroud)
希望对发现此错误的人有所帮助。
归档时间: |
|
查看次数: |
81767 次 |
最近记录: |