代码之家  ›  专栏  ›  技术社区  ›  vcamargo

如何使ffmpeg在Docker容器中可用?

  •  20
  • vcamargo  · 技术社区  · 6 年前

    我目前正在尝试运行 ffmpeg Docker图像位于我自己的容器中 docker-compose 使用 depends_on 条款但当我试图达到 ffmpeg 在我的代码中,它似乎在系统范围内不可用,我得到了一个错误。我认为我误解了Docker。

    我的当前 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 停止工作。

    1 回复  |  直到 6 年前
        1
  •  33
  •   Adiii    5 年前

    你在混合两种东西 linking or depend_on vs公司 multi-stage 形象

    链接或依赖用于docker容器网络通信 访问链接容器安装的应用程序。

    链接时 DB 这意味着您可以从本地主机(3306 in container)连接数据库

    因此,我建议在nodejs容器中安装FFmpeg。

    以下是Dockerfile基于 nodejs:alpine 哪一个更轻 nodejs:9

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

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

    enter image description here

    更新时间:

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

    节点验证

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

    ffmpeg验证

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

    ffmpeg docker repository