Django docker的本地开发-我需要2个DockerFile吗?
第一次尝试对django项目进行dockerize时,我知道对于生产,Dockerfile应该具有将django项目复制到容器中的Django docker的本地开发-我需要2个DockerFile吗?,django,docker,dockerfile,Django,Docker,Dockerfile,第一次尝试对django项目进行dockerize时,我知道对于生产,Dockerfile应该具有将django项目复制到容器中的ADD 但是对于本地开发,我需要对代码的每一个更改立即生效,因为我读到,建议在运行docker(docker run-v path:path)时装入一个卷,但这是否意味着我需要为本地开发使用不同的Dockerfile?不运行ADD命令的文件?否您可能不需要两个文件。您可以在卷中的“添加”命令中使用相同的文件夹 请参见docker官方页面上的django教程: Doc
ADD
但是对于本地开发,我需要对代码的每一个更改立即生效,因为我读到,建议在运行docker(docker run-v path:path)时装入一个卷,但这是否意味着我需要为本地开发使用不同的Dockerfile?不运行
ADD
命令的文件?否您可能不需要两个文件。您可以在卷中的“添加”命令中使用相同的文件夹
请参见docker官方页面上的django教程:
Dockerfile
FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
version: '2'
services:
db:
image: postgres
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
编写文件
FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
version: '2'
services:
db:
image: postgres
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
不必将本地文件夹绑定到容器路径,您可以创建一个卷,该卷可以存放在您想要的任何位置(如中所述,使用或甚至使用) 这样,您的数据将保存在一个可以访问的数据卷中:
- 本地(本地持久化插件)
- 或者仍然在本地,通过专用容器()装入该卷
- 不需要2个DockerFile,如果您使用“docker run-v hostpath:containerpath”装载,即使containerpath已经存在,它也会装载hostpath 我也会推荐这个解决方案。Flocker现在默认为Docker,因此易于使用。