Библиотеки Python в Dockerfile для проекта Node.js

Я пытаюсь загрузить свой проект Node.js в Docker Platform на AWS Elastic Beanstalk. У меня проблемы с добавлением библиотек Python в Dockerfile. С этим развертыванием файлов все в порядке:

FROM node:8.16
WORKDIR /opt/app
COPY package.json package-lock.json* ./
RUN npm cache clean --force && npm install
COPY . /opt/app
ENV PORT 80
EXPOSE 80
CMD [ "npm", "start" ]

Но как только я добавляю библиотеки Python для файла Docker:

FROM node:8.16
WORKDIR /opt/app
COPY package.json package-lock.json* ./
RUN npm cache clean --force && npm install
COPY . /opt/app

FROM python:3.7    
COPY requirements.txt /tmp/
RUN pip install --requirement /tmp/requirements.txt
COPY . /tmp/

ENV PORT 80
EXPOSE 80
CMD [ "npm", "start" ]

Я получаю ошибку при развертывании:

Не удалось запустить Docker-контейнер: a46e6adbe0fee8d3 docker: Ответ об ошибке от демона: Ошибка создания среды выполнения OCI: container_linux.go:348: запуск процесса контейнера вызвал "exec: \"npm\": исполняемый файл не найден в $PATH": неизвестно.. Проверьте журналы снимков для деталей.

Заранее благодарю за любую помощь

1 ответ

Решение

Как упомянуто в ссылке на докер для FROM, допускается наличие нескольких инструкций FROM в одном Dockerfile:

Каждая инструкция FROM очищает любое состояние, созданное предыдущими инструкциями.

Если вы хотите построить свое приложение поверх среды, содержащей как node.js, так и python 3, я предлагаю вам взглянуть на Docker Hub. Возможно, это поможет.

Другие вопросы по тегам