我正在使用django角项目。我正在使用python3所以我想要一个容器,其中将安装节点6.4.0和python3。我的docker中有节点:6.4.0和python:3.4图像。
现在我想要另一张名为py3node的图片。 我这样想:
Dockerfile:
FROM node:6.4.0
FROM python:3.4
docker build -t py3node
output:
Sending build context to Docker daemon 8.192 kB
Step 1 : FROM node:6.4.0
---> 800da22d0e7b
Step 2 : FROM python:3.4
---> 93bc8e41eb8c
Successfully built 93bc8e41eb8c
然后我跑:
docker run -it py3node /bin/bash
root@092724f514:/# node -v
output:
bash: node: command not found
但python3有效。为什么节点:6.4.0不起作用?
答案 0 :(得分:3)
您无法合并这样的图像并期望它能够正常工作! (Using multiple FROM
directives is hazardous and should probably be removed)。
你要么想要使用通用图像(ubuntu?alpine?)并安装python和node,要么开始使用django友好图像here maybe?。我要看看其他django + docker项目是如何做的。
答案 1 :(得分:1)
您必须选择一个映像并将所有内容安装在该映像之上。在您的情况下,我会这样做:
Dockerfile
FROM node:6.4.0
RUN apt-get update || : && apt-get install python -y
RUN apt-get install python3-pip -y
答案 2 :(得分:0)
您可以参考:node:7.9-alpine unable to build package due python is not installed
您需要做的就是将以下内容添加到DockerFile
RUN apk --no-cache add g++ gcc libgcc libstdc++ linux-headers make python
RUN npm install --quiet node-gyp -g