TGViewer
Python Portal Python Portal @pythonportal · 50.2K subscribers
Post #5482 7.73K
Python UV x Docker совет

Иногда полезно ставить зависимости в несколько шагов.

Например, чтобы лучше работал кэш слоев при сборке Docker-образа.

Сначала ставим только зависимости.

Потом копируем проект и ставим уже сам проект.

Зачем делить на два шага?

Docker собирает образ слоями: если слой закэширован, он не пересобирается, пока не изменились входные файлы.

Если отделить установку зависимостей от установки проекта:

▪️Если меняется только main.py, Docker переиспользует закэшированный слой с зависимостями (быстрее)

▪️Если меняется только pyproject.toml, Docker пересобирает слои начиная с этого места (и это правильно, потому что зависимости поменялись)

Без такого разделения любое изменение кода заставит заново переустанавливать все зависимости.

# Install the project's dependencies using the lockfile and settings
RUN --mount=type=cache,target=/root/.cache/uv \
--mount=type=bind,source=uv.lock,target=uv.lock \
--mount=type=bind,source=pyproject.toml,target=pyproject.toml \
uv sync --locked --no-install-project

# Then, add the rest of the project source code and install it
# Installing separately from its dependencies allows optimal layer caching
COPY . /app
RUN --mount=type=cache,target=/root/.cache/uv \
uv sync --locked


👉 @PythonPortal
  • ❤ 9
  • 👍 3
More from @pythonportal
  1. Oct 8, 2026Смесь CS 1.6 и MW2, которая работает полностью локально в Google Chrome — https://cs.dphn.…
  2. Oct 7, 2026Робототехника — это, по сути, постоянное согласование систем координат. Лидар видит мир в…
  3. Oct 7, 2026Понимание алгоритмов меняет то, как вы пишете код. Этот плейлист учит именно пониманию. Па…
  4. Oct 6, 2026«Разбираемся в трансформерах и механизмах внимания» — краткое математическое введение в ме…
  5. Oct 6, 2026Начни изучать программирование GPU с одной полностью анимированной лекции на YouTube. Это…
  6. Oct 5, 2026«Основы компьютерного зрения» — бесплатная онлайн-книга издательства MIT Press, которая да…
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 →