Обновляют ли тома Docker также приложение Source?

Я следил за учебниками на YouTube от двух разных создателей, и в обоих случаях они начинают со свежей директории, где нет ничего, кроме виртуальной среды. Затем они добавляют 3 ожидаемых файла Dockerfile, docker-compose.yml и requirements.txt. Как и они, я создаю контейнер и запускаю его, чтобы увидеть успешно созданное приложение Django. Но вот тут-то и возникает проблема. Как только они останавливают или удаляют контейнер и возвращаются к приглашению терминала, то есть находятся в исходном приложении ОС, а не в контейнере, они оба могут сделать python manage.py runserver и запустить сервер разработки, или мигрировать, но когда я нажимаю requirements.txt на дереве проекта, я получаю уведомление, что Django не был установлен. Я могу понять это, потому что мы действительно установили Django в контейнер, но не в исходное приложение. Я знаю, что тома должны обновлять контейнер, если вы вносите изменения в исходный код приложения в вашей IDE, но не наоборот. Именно поэтому django не устанавливается. Вот файлы:

Dockerfile:

FROM python:3.8
ENV PYTHONUNBUFFERED=1
WORKDIR /django
COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt

requirements.txt

asgiref==3.3.1
Django==3.1.7
pytz==2021.1
sqlparse==0.4.1
psycopg2-binary>=2.8
mysqlclient>=2.0

docker-compose.yml

version: "3.8"
services:
  app:
    build: .
    volumes:
      - .:/django
    ports:
      - 8000:8000
    image: app:django
    container_name: django_container
    command: python manage.py runserver 0.0.0.0:8000
    depends_on:
      - db 
  db:
    # image: postgres
    # volumes:
    #   - ./data/db:/var/lib/postgresql/data
    # environment:
    #   - POSTGRES_DB=postgres
    #   - POSTGRES_USER=postgres
    #   - POSTGRES_PASSWORD=postgres
    # container_name: postgres_db
    image: mysql:5.7
    environment:
      MYSQL_DATABASE: 'django-app-db'
      MYSQL_ALLOW_EMPTY_PASSWORD: 'true'
    volumes:
      - ./data/mysql/db:/var/lib/mysql

Команды следующие:

docker-compose build
docker-compose run --rm app django-admin startproject core .
docker-compose up
docker exec -it django_app/bin/bash

Когда я делаю build, (создаю образ) и compose up (запускаю контейнер), я вижу, да, что каталог с именем core и все его файлы, wsgi.py settings.py и т.д. созданы, но они, похоже, активны только для контейнера. Как только я выхожу из контейнера, если я пытаюсь работать с manage.py, я получаю уведомление о том, что "django не был установлен"

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