TGViewer
Python вопросы с собеседований Python вопросы с собеседований @python_job_interview · 24.9K subscribers
Post #1305 3.84K
🖥 PYTHON + DOCKER: МНОГОСТУПЕНЧАТАЯ МАГИЯ

Когда Python-код в Docker начинает внезапно тормозить, а контейнеры — весить гигабайты, часто виновник скрыт глубже: Docker копирует в образ всё виртуальное окружение, кэш pip, артефакты билдов и даже .pyc-файлы.
Есть хитрый способ избежать этого и сделать контейнер в 5–10 раз легче и гораздо быстрее:

Используйте многоступенчатую сборку, где Python-зависимости собираются в одном этапе, а в финальный образ попадает только «чистый» результат.
Так вы исключаете мусор, ускоряете сборку и снижаете attack surface.


Многоступенчатый Dockerfile для Python

1. Этап сборки зависимостей

FROM python:3.12-slim AS builder
WORKDIR /build

COPY requirements.txt .
RUN pip install --no-cache-dir --prefix=/install -r requirements.txt

2. Финальный минимальный образ

FROM python:3.12-slim
WORKDIR /app

Копируем только готовые зависимости без pip-кэша

COPY --from=builder /install /usr/local

Добавляем чистый код без артефактов

COPY . .

CMD ["python", "main.py"]
  • ❤ 9
  • 🔥 9
  • 🥰 3
More from @python_job_interview
  1. Sep 22, 2026Как правильно получить случайное число в Python Если нужен диапазон от 1 до 100 включитель…
  2. Sep 19, 2026✔️ Кто подключился к вашей сети? NetAlertX обнаруживает устройства и уведомляет об изменен…
  3. Sep 18, 2026✔️ QuiverAI выпустила обновление генератора векторной графики Во второе поколение семейств…
  4. Sep 17, 2026📚 Бесплатная книга по математике для Computer Science и Machine Learning - более 2200 стр…
  5. Sep 15, 2026🐍 Python: как найти изменённое поле во вложенном словаре Сравнение before == after покаже…
  6. Sep 15, 2026🔥 Один из лучших обучающих курсов на StepiK по SQL SQL можно знать годами и всё равно тер…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →