首页 > 解决方案 > 如何使 ffmpeg 在我的 Docker 容器中可用?

问题描述

我目前正在尝试使用该子句ffmpeg在我自己的容器中运行 Docker 映像。但是当我尝试进入我的代码时,它似乎在系统范围内不可用,并且出现错误。我相信我错误地配置了 Docker。docker-composedepends_onffmpeg

我目前Dockerfile的情况如下:

FROM node:9

WORKDIR /usr/app

COPY package*.json ./

RUN npm install --quiet

COPY . .

我的docker-compose.yml

version: '3'
services:
  app:
    build: .
    command: npm run dev
    volumes:
    - .:/usr/app/
    - /usr/app/node_modules
    ports:
      - "3000:3000"
    depends_on:
      - ffmpeg
  ffmpeg:
    image: jrottenberg/ffmpeg:3.3

当我运行时,docker-compose up我可以看到它ffmpeg实际上正在工作,但随后我的应用程序继续启动,并且似乎ffmpeg停止工作。

标签: dockerffmpegdocker-compose

解决方案


您正在混合两件事linking or depend_onmulti-stage图像。

Linking 或depend_on 用于 docker 容器网络通信,不访问链接容器安装的应用程序。

当您链接时,DB这意味着您可以从本地主机连接数据库(容器中的 3306)

所以我建议在你的 nodejs 容器中安装 FFmpeg。

这是 Dockerfile 基于nodejs:alpine哪个更轻量级nodejs:9

FROM node:alpine
RUN apk add  --no-cache ffmpeg

如果您运行容器或签入容器,您将看到它工作正常。

在此处输入图像描述

更新:

您可以从 Docker 存储库中提取图像。

节点验证

docker run -it --rm adiii717/ffmpeg ash -c "node -v"

ffmpeg 验证

docker run -it --rm adiii717/ffmpeg ash -c "ffmpeg -version"

ffmpeg 泊坞窗存储库


推荐阅读