首页 > 解决方案 > Dockerfile 中用于 Node.js 项目的 Python 库

问题描述

我正在尝试将我的 Node.js 项目上传到 AWS Elastic Beanstalk 上的 Docker 平台。我在 Dockerfile 中添加 python 库时遇到问题。使用此文件部署很好:

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" ]

但是一旦我为 Docker 文件添加 Python 库:

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 中找不到可执行文件”:未知..检查快照日志以获取详细信息。

提前感谢您的帮助

标签: node.jspython-3.xdockerfileamazon-elastic-beanstalkawsdeploy

解决方案


如FROM 的 docker参考中所述,虽然允许在单个 Dockerfile 中包含多个 FROM 指令:

每个 FROM 指令都会清除先前指令创建的任何状态。

如果您希望在包含 node.js 和 python 3 的环境之上构建您的应用程序,我建议您查看 docker hub。也许这个会有所帮助。


推荐阅读