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

Dan*_*ofe 3 django docker dockerfile

第一次尝试对 django 项目进行 dockerize,我知道对于生产,我的 Dockerfile 应该ADD将 django 项目复制到容器中。

但是对于本地开发,我需要对代码的所有更改立即生效,为此我读到建议在运行 docker 时挂载一个卷( docker run -v path:path )但这是否意味着我需要有一个不同的 Dockerfile本地发展?一个不运行ADD命令?

atv*_*atv 5

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

从官方 docker 页面查看此 django 教程:

https://docs.docker.com/compose/django/

文件

FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
Run Code Online (Sandbox Code Playgroud)

撰写文件

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
Run Code Online (Sandbox Code Playgroud)