如何在Docker中使用多种编程语言?
我用Node.js编写的项目运行一个需要构建的Python文件。以前,我从GitHub中提取了一个脚本来设置项目。我想使用Docker,但在运行多个FROM时遇到问题。我的理解是FROM创建了一个新的图像,因此我的项目构建失败了。这是什么解决方案?
原始Shell脚本
yarn
git clone /<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 /<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
回答如下:
您必须使用任何一个图像并将其他应用程序安装到该图像中。所以你的dockerfile可能看起来像:
FROM node:11
RUN mkdir -p /usr/src/app
COPY . /usr/src/app/
WORKDIR /usr/src/app
RUN git clone https://github/<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。