docker工具本地开发 – 我需要2个Docker文件吗?

试图dockerize Django项目的第一次,我明白,生产我的Dockerfile应该有ADD ,将django项目复制到容器。

但对于本地开发,我需要立即生效的代码的每一个变化,因为我读它build议当我运行docker(docker运行-vpath:path),但是这意味着我需要有一个不同的Dockerfile为地方发展? 一个不运行ADD命令?

不,你可能不需要两个文件。 您可以在卷的ADD命令中使用相同的文件夹。

从官方docker页面看到这个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 

而不是将本地文件夹绑定到容器path,您可以创build一个可以在任何地方执行的卷(如本地持久性插件驱动程序的解释或甚至像 flocker 这样的更高级的驱动程序 )

这样,您的数据将保留在可以访问的数据卷中:

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

不需要2个dockerfiles,如果使用“docker run -v hostpath:containerpath”进行安装,即使containerpath已经存在,它也会挂载hostpath!