Как сделать ffmpeg доступным внутри моего контейнера Docker? - PullRequest
0 голосов
/ 27 апреля 2018

В настоящее время я пытаюсь запустить образ Docker ffmpeg в своем собственном контейнере с помощью 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 Ответ

0 голосов
/ 27 апреля 2018

Вы смешиваете две вещи linking or depend_on против multi-stage изображения.

Linking или зависимость_ используется для связи с докерной контейнерной сетью, чтобы не получить доступ к приложению, установленному из связанного контейнера.

когда вы связываете DB, это означает, что вы можете подключить базу данных с вашего локального хоста (3306 в контейнере)

Так что я предложу установить FFmpeg в ваш контейнер nodejs.

Вот Dockerfile, основанный на nodejs:alpine, который более легкий, чем nodejs:9

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

Если вы запустите контейнер или зарегистрируетесь в контейнере, вы увидите, что он работает нормально.

enter image description here

...