基于Alpine基础镜像的Docker容器添加FFmpeg运行报错求助
问题诊断与修复方案
错误核心原因
你的Dockerfile中ENTRYPOINT与CMD的组合逻辑错误,是触发报错的根本原因:
Docker运行容器时,ENTRYPOINT指定的可执行程序会将CMD的全部内容作为入参接收。你配置了ENTRYPOINT ["/usr/bin/ffmpeg"],CMD ["yarn", "start"],所以容器启动时实际执行的命令是:
ffmpeg yarn start
FFmpeg无法识别yarn为合法的命令参数,因此抛出Unable to find a suitable output format for 'yarn'的报错。
修复方案
根据你的实际业务需求选择对应方案即可:
- 若你的核心需求是启动Node服务,FFmpeg只是供Node程序调用的依赖:直接删除
ENTRYPOINT ["/usr/bin/ffmpeg"]这一行配置即可,容器启动时会自动执行yarn start启动你的Node服务。 - 若你需要部分场景下直接调用FFmpeg,部分场景启动Node服务:可以删除固定的ENTRYPOINT配置,启动容器时通过
docker run <镜像名> ffmpeg <ffmpeg参数>的方式手动指定启动命令即可。
内容的提问来源于stack exchange,提问作者Kinara Nyakaru
相关产品推荐
相关产品推荐

