Docker在同一个容器上覆盖“pip install”和“npm install”

在我的docker集装箱中,我试图用pip安装几个包,并通过npm安装Bower。 似乎无论哪个pip或npm先运行,另一个在/ usr / local / bin中的内容被覆盖(具体来说,gunicorn缺less下面的Dockerfile,或者Bower丢失,如果我交换我的FROM..RUN块)。

这是Docker的预期行为,如果是这样,我该如何将我的pip包和Bower安装到同一个目录/ usr / local / bin?

这是我的Dockerfile:

 FROM python:3.4.3 RUN mkdir /code WORKDIR /code ADD ./requirements/ /code/requirements/ RUN pip install -r /code/requirements/docker.txt ADD ./ /code/ FROM node:0.12.7 RUN npm install bower 

这是我的docker-compose.yml文件:

 web: restart: always build: . expose: - "8000" links: - postgres:postgres #-redis:redis volumes: - .:/code env_file: .env command: /usr/local/bin/gunicorn myapp.wsgi:application -w 2 -b :8000 --reload webstatic: restart: always build: . volumes: - /usr/src/app/static env_file: .env command: bash -c "/code/manage.py bower install && /code/manage.py collectstatic --noinput" nginx: restart: always #build: ./config/nginx image: nginx ports: - "80:80" volumes: - /www/static - config/nginx/conf.d:/etc/nginx/conf.d volumes_from: - webstatic links: - web:web postgres: restart: always image: postgres:latest volumes: - /var/lib/postgresql ports: - "5432:5432" 

更新:我继续并交叉发布这个作为docker-compose的问题,因为目前还不清楚是否有一个实际的错误,或者如果我的configuration是一个问题。 我会保持这两个post更新,但如果你有一个想法正在发生的任何一个post。 谢谢!

您不能在Dockerfile中使用多个FROM命令,并且不能从2个不同的基础映像创build映像。 所以,如果你需要在同一个图像中的节点和Python,你可以添加节点到Python图像或添加Python到节点图像。