一旦将docker上传到弹性beantalk,ffmpeg似乎消失了

时间:2019-02-27 16:30:25

标签: docker ffmpeg amazon-elastic-beanstalk

我有一个使用ffmpeg的Node后端。我使用多阶段构建,部分节点部分ffmpeg(稍后在下面粘贴的Dockerfile)构建了docker。构建完成后,我在本地访问Docker,并看到ffmpeg已正确安装在其中。然后,我将此泊坞窗部署到弹性beantalk。奇怪的是,一旦进入docker镜像,ffmpeg就会消失。我绝对不知道发生了什么,为什么部署时docker也不一样。

更多详细信息:

Dockerfile

FROM jrottenberg/ffmpeg:3.3-alpine
FROM node:11

# copy ffmpeg bins from first image
COPY --from=0 / /

# Create app directory
WORKDIR /usr/src/app

# Install app dependencies
COPY package*.json ./
RUN npm install

# If you are building your code for production
# RUN npm install --only=production

# Bundle app source
COPY . .

EXPOSE 6969
CMD [ "npm", "run", "start:production" ]

我使用以下命令构建docker:

docker build -t <project-name> .

此后,我将以这种方式访问​​本地docker:

docker run -i -t <project-name> /bin/bash

当我输入“ ffmpeg”,it recognizes it时,如果我尝试使用“ whereis”,它将返回我/ usr / local / bin。

然后我将其部署为eb

eb deploy

这是有趣的地方

我通过SSH进入eb实例。到达那里后,我找到了容器ID并使用

docker exec -it <instance-id> bash

访问docker。它具有所有节点的内容,但是缺少ffmpeg。它不在部署之前的/ usr / local / bin目录中。

我什至直接在eb上安装了ffmpeg,但这对我没有帮助,因为节点后端在docker中搜索以找到ffmpeg。您从中看到的任何指针或危险信号都将受到赞赏,谢谢

edit:Docker版本中的唯一区别是本地运行的版本是18.09 / API 1.39,而eb上的版本是18.06 / API 1.38

1 个答案:

答案 0 :(得分:0)

我的弹性beantalk t2.micro实例没有足够的cpu或ram来完成ffmpeg的安装,因此超时了。升级到t2.medium解决了该问题