Docker django: Зачем копировать контекст в образ docker, если мы перезаписываем его, монтируя что-то вместо него в docker compose

Я следовал руководству для docker и django. https://devopstuto-docker.readthedocs.io/en/latest/compose/django/django.html

Я вижу следующий файл docker

FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/   <---- WHATS THE NEED OF THIS, SINCE WE ARE MOUNTING IT IN DOCKER COMPOSE

Докер компонует файл как

version: '3'

services:
  db:
    image: postgres
  web:
    build: .
    command: python3 manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code   <----------  WHY TO MOUNT THE CODE HERE. THE IMAGE HAS THE CODE
    ports:
      - "8000:8000"
    depends_on:
      - db

Я вижу в docker-compose.yml, что он монтирует текущую папку в код - .:/code

и в Dockerfile мы также видим ADD . /code/

Какая необходимость в ADD . /code/, если мы так или иначе зависим от монтирования в docker-compose, которое будет перезаписывать файлы

нет необходимости ADD . /code если вы используете этот docker-compose, он используется в локальной разработке

Dockerfile с ADD . /code приводит к созданию изображения с приложением django, которое вы можете запустить в любом месте, это используется при развертывании

Вернуться на верх