ffmpeg, кажется, исчезает, когда докер загружен в эластичный бобовый стебель - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть Node backend, который использует ffmpeg.Я построил докер, используя многоэтапную сборку, часть узла, часть ffmpeg (Dockerfile вставлен позже ниже).После сборки я получаю доступ к Docker локально и вижу, что в нем правильно установлен ffmpeg.Затем я развернул этот докер на эластичном стебле бобов.Как ни странно, при доступе к образу докера ffmpeg исчез.Я абсолютно не могу понять, что происходит, почему докер не тот же, когда развернут.

Вот более подробная информация:

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 build -t <project-name> .

После этого я получаю доступ к локальному докеру следующим образом:

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

Когда я вставляю "ffmpeg", распознает его и если я попробую «whereis», он вернет мне / usr / local / bin.

Затем я развертываю его, используя eb, используя

eb deploy

. Здесь все становится интереснее

Я использую SSH в моем экземпляре eb.Оказавшись там, я нахожу идентификатор контейнера и использую

docker exec -it <instance-id> bash

для доступа к докеру.В нем есть все ноды, но ffmpeg отсутствует.Он не находится в / usr / local / bin, как это было до развертывания.

Я даже установил ffmpeg непосредственно на eb, но это не помогло мне, так как бэкэнд узла ищет в докере поиск ffmpeg.Любые указатели или красные флаги, которые вы видите из этого, очень ценятся, спасибо

edit: единственное отличие в версиях Docker - это то, что локально работает 18.09 / API 1.39, тогда как на eb 18.06 / API 1.38

...