如何在Docker中使用多种编程语言?

时间:2019-02-19 06:43:52

标签: python node.js docker

我的项目使用Node.js编写,运行一个需要构建的Python文件。以前,从GitHub提取时,我曾使用脚本来设置项目。我想改用Docker,但是在运行多个FROM时遇到问题。我的理解是FROM会创建一个新映像,因此我的项目构建失败。有什么解决方案?

原始Shell脚本

yarn
git clone https://github.com/<directory>
mv <directory> <new_name>
cd <directory>
virtualenv venv
source venv/bin/activate
pip3 install -r requirements.txt 

尝试使用Dockerfile

FROM python:3.6

RUN mkdir -p /usr/src/app

COPY . /usr/src/app/
WORKDIR /usr/src/app

RUN git clone https://github.com/<directory>
RUN mv /usr/src/app/<directory> /usr/src/app/<new_name>

RUN pip3 install -r <new_name>/requirements.txt

FROM node:11

WORKDIR /usr/src/app

RUN npm install --production

EXPOSE 3000
ENTRYPOINT npm start

1 个答案:

答案 0 :(得分:1)

您必须使用任何一个映像并将其他应用程序安装到该映像中。因此,您的dockerfile可能看起来像:

FROM node:11

RUN mkdir -p /usr/src/app

COPY . /usr/src/app/
WORKDIR /usr/src/app

RUN git clone https://github.com/<directory>
RUN mv /usr/src/app/<directory> /usr/src/app/<new_name>

RUN Command to install python 3.6 and pip3

RUN pip3 install -r <new_name>/requirements.txt

WORKDIR /usr/src/app

RUN npm install --production

EXPOSE 3000
ENTRYPOINT npm start

您可以参考此sample dockefile