[英]How to separate docker and docker-compose from Django source folder
我正在尝试实现此项目布局结构:
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中复制copys.txt文件,然后运行pip安装,我希望该安装仅在requirements.txt更改时才能运行。
在Dockerfile-app内部:
ADD src/djangoproj/requirements.txt /
RUN pip install -r requirements.txt
据我所知,在docker中,我无法访问父文件夹。 我也在尝试做
app:
build:
context: ..
但是什么也没输出...所以我不知道发生了什么...
该卷何时添加到Docker容器?
任何帮助将不胜感激
您在以下context: ../
的正确轨道上context: ../
。 一旦指定了上下文,就可以在同一目录级别访问需求文件。
将Dockerfile更新到以下内容
ADD ./src/djangoproj/requirements.txt /
和docker-compose.yml指向docker目录中的Dockerfile。 这是必需的,因为构建上下文现在已移至父目录。
version: '3'
services:
app:
build:
context: ../
dockerfile: docker/Dockerfile
我的文件布局如下所示:
$ tree .
.
├── docker
│ ├── Dockerfile
│ └── docker-compose.yml
└── src
└── requirements.txt
2 directories, 3 files
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.