РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗dcPyDvInr 9 of 22 menu
◀ ▶

Введение в разработку 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 без базы данных.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить