在我的码头容器中,我试图用pip安装几个包,并通过npm安装Bower。但似乎无论哪个pip或npm先运行,另一个在/ usr/local/bin中的内容都被覆盖(具体来说,下面的Dockerfile缺少gunicorn,或者如果我交换我的FROM..RUN
块的顺序,Bower就会丢失)。Docker在同一个容器上运行“pip install”和“npm install”互相覆盖
这是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
这里是我的搬运工,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 issue因为如果现在还不清楚有一个实际的错误,或者如果我的配置是一个问题。我会保持这两个帖子都更新,但如果您对发生的事情有所了解,也可以发帖。谢谢!
这是一个错字,还是在ADD中有一个空格。/requirements/code/requirements /'? – user2915097
Typo;接得好。我会更新我的帖子。我想知道为什么PIP继续与每个“构建”安装。不幸的是,与npm/pip相同的问题。 –