第一次尝试将django项目停靠,我理解为生产我的Dockerfile应该有ADD
将django项目复制到容器中。
但是对于本地开发我需要对代码进行每次更改才能立即生效,因为我读过它时建议在运行docker(docker run -v path:path)时挂载卷,但这是否意味着我需要用于本地开发的不同Dockerfile?一个没有运行ADD
命令的那个?
答案 0 :(得分:2)
不,你可能不需要两个文件。您可以在卷中的ADD命令中使用相同的文件夹。
从官方泊坞页面看这个django教程:
https://docs.docker.com/compose/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
答案 1 :(得分:0)
您可以创建一个可以随心所欲地存储的卷,而不是将本地文件夹绑定到容器路径(如this answer中local persist pluging driver或more advanced driver like flocker中所述。 )
这样,您的数据就会存在于可以访问的数据卷中:
svendowideit/samba/
)答案 2 :(得分:0)
如果使用&#34; docker run -v hostpath:containerpath&#34;挂载,则不需要2个dockerfiles;即使containerpath已经存在,它也会挂载hostpath!