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, которое вы можете запустить в любом месте, это используется при развертывании