【发布时间】:2018-04-09 15:32:49
【问题描述】:
我正在尝试实现这个项目布局结构:
project root:
- docker:
- docker-compose.yml
- Dockerfile-app
- Dockerfile-mysql
- src:
- djangoproj
- core
- requirements.txt
docker-compose.yml
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile-app
command: /bin/bash -c "cd /var/www/app/src/djangoprj && pip install -r requirements-develop.tx && python manage.py runserver 0.0.0.0:8000 || sleep 100000"
container_name: website_app
depends_on:
- mysql
links:
- mysql
ports:
- '8000:8000'
volumes:
- ../:/var/www/app
working_dir: /var/www/app/src/djangoproj
mysql:
build:
context: .
dockerfile: Dockerfile-mysql
container_name: website_mysql
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: local
MYSQL_USER: yoo
MYSQL_PASSWORD: password
ports:
- '3306:3306'
这基本上可行,我唯一的问题是每次都构建需求。
我希望在 Dockerfile-app 中复制 requirements.txt 文件,然后运行我希望仅在 requirements.txt 更改时运行的 pip 安装。
在 Dockerfile-app 内部:
ADD src/djangoproj/requirements.txt /
RUN pip install -r requirements.txt
根据我在 docker 中的了解,我无法访问父文件夹。 我也在尝试做
app:
build:
context: ..
但是没有输出任何东西...所以我不知道这是怎么回事...
volume 何时添加到 docker 容器中?
我们将不胜感激任何帮助
【问题讨论】:
-
不应该是ADD ../src/djangoproj/requirements.txt /
标签: python django docker docker-compose