使用docker进行本地开发 - 我需要2个Dockerfiles吗?

时间:2016-07-22 06:28:44

标签: django docker dockerfile

第一次尝试将django项目停靠,我理解为生产我的Dockerfile应该有ADD将django项目复制到容器中。

但是对于本地开发我需要对代码进行每次更改才能立即生效,因为我读过它时建议在运行docker(docker run -v path:path)时挂载卷,但这是否意味着我需要用于本地开发的不同Dockerfile?一个没有运行ADD命令的那个?

3 个答案:

答案 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 answerlocal persist pluging drivermore advanced driver like flocker中所述。 )

这样,您的数据就会存在于可以访问的数据卷中:

  • 本地(本地持久插件)
  • 或仍在本地,通过安装该卷的专用容器(svendowideit/samba/

答案 2 :(得分:0)

如果使用&#34; docker run -v hostpath:containerpath&#34;挂载,则不需要2个dockerfiles;即使containerpath已经存在,它也会挂载hostpath!