Введение в разработку Python в Docker
Разработка держит код на хосте, а зависимости остаются в образе. Готовый шаблон неудобен, когда строку в скрипте меняют каждую минуту. Сборка тянет время, а правка на диске ждёт сразу после сохранения. Раздел про повседневную работу рядом с контейнером, а не про один раз собранный каркас.
Папку проекта на компьютере
связывают с /app
через том в записи
$PWD/app:/app.
Текст страницы лежит
в файле на этом томе.
Следующий запрос читает
его заново, и страница
на 8080
меняется без нового образа.
Образ python:3.14
и модуль http.server
остаются теми же,
что в разделе приложения,
без Flask, Django и FastAPI.
Установку pip install
по requirements.txt
выполняют при сборке
и кладут пакеты
в .venv
внутри /app.
Анонимный том
на /app/.venv
не даёт пустой каталог
с хоста затереть
содержимое из образа.
Две строки в volumes
держат код с диска
и окружение pip
в отдельных слоях.
Переменные приложения
передают значение
в os.environ
без правки файла
на смонтированном томе.
Строка в environment
меняет ответ страницы
после подъёма службы.
Логи приложения читают
текст из стандартного вывода
фонового процесса
через docker compose logs.
Короткий вызов
python
внутри работающего сервиса
не заменяет главный процесс
с CMD
в exec-форме.
Пересборка образа нужна,
когда меняют Dockerfile
или список в requirements.txt,
а не текст app.py
на хосте.
Флаг --build
у подъёма заново
прогоняет шаги сборки.
Примеры раздела
опираются на пару портов
8080
и 8000,
на COPY
без ADD
и на ответ hello
без базы данных.