У меня есть 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