将多个docker映像与多阶段构建相结合不起作用

将多个docker映像与多阶段构建相结合不起作用,docker,dockerfile,docker-multi-stage-build,Docker,Dockerfile,Docker Multi Stage Build,我想创建一个安装了FFMPEG和NodeJs的Docker容器映像。我正在使用和Docker图像尝试多级构建Dockerfile,如下所示: FROM jrottenberg/ffmpeg AS base FROM node:12 as patch ENTRYPOINT [ "node", "--version" ] 此容器将节点版本正确显示为v12.20.2(如预期)。但是,如果将入口点更改为ffmpeg,则会出现错误。修改后的Dockerfile

我想创建一个安装了FFMPEG和NodeJs的Docker容器映像。我正在使用和Docker图像尝试多级构建Dockerfile,如下所示:

FROM jrottenberg/ffmpeg AS base

FROM node:12 as patch

ENTRYPOINT [ "node", "--version" ]
此容器将节点版本正确显示为v12.20.2(如预期)。但是,如果将入口点更改为ffmpeg,则会出现错误。修改后的Dockerfile如下:

FROM jrottenberg/ffmpeg AS base

FROM node:12 as patch

ENTRYPOINT [ "ffmpeg", "-version" ]
错误是:

docker:来自守护程序的错误响应:OCI运行时创建失败: container_linux.go:370:启动容器进程导致:exec: “ffmpeg”:在$PATH中找不到可执行文件:未知

我打算使用一个NodeJS程序,在容器中生成FFMPEG作为子进程。我怎样才能让它工作

我还尝试在Dockerfile中使用
RUN-apt-get-install-nodejs
指令,而不是节点12的
。这也不起作用。

更新:

结合@David Maze的反馈,下面的dockerfile实现了我最初的目标:在图像上使用NodeJs+FFMPEG

FROM node:alpine

RUN apk add ffmpeg

COPY ./app.js .

ENTRYPOINT node app.js

虽然它没有像我最初打算的那样使用多级构建,但它实现了目的。图像大小也小得多。

如果两个
/usr/bin
目录重叠,似乎会发生这种情况。有两个重叠的/usr/bin目录似乎很危险。为你修正了你的英语;不能使用多阶段构建来组合两个图像。从
行开始的第二个
行之后,您完全从头开始。更好的方法是从node:buster
或另一个已知的Linux发行库构建映像
,然后使用软件包管理器
apt-get-install-ffmpeg