← До фільтрів та технологій

← До списку лабораторних по Docker

Docker Лабораторна 58: Кеш для залежностей

Технологія: Docker

Номер лабораторної: 58 · Рівень: middle

Тема: Кешування залежностей у multi-stage збірці

Повний опис / сценарій лабораторної:

Мета: навчитися використовувати багатостадійну збірку щоб кешувати залежності і прискорити збірку у ci.



Крок 1. Підготувати застосунок з менеджером пакетів.

Пояснення: наприклад Python з requirements.txt або Node з package.json.



Крок 2. Написати Dockerfile де спочатку копіюється лише файл залежностей.

Пояснення: перша інструкція COPY стосується тільки requirements.txt.



Крок 3. Додати RUN для встановлення залежностей.

Пояснення: цей шар буде кешуватися поки не зміниться файл залежностей.



Крок 4. Потім скопіювати увесь код у наступній інструкції COPY.

Пояснення: зміна коду не зламає кеш для залежностей.



Крок 5. Зібрати образ перший раз.

Команда: time docker build -t lab58-app .

Пояснення: зафіксуй час збірки.



Крок 6. Внести дрібну зміну у код без зміни залежностей.

Пояснення: наприклад змінити текст який виводить застосунок.



Крок 7. Повторити збірку.

Команда: time docker build -t lab58-app .

Пояснення: перевір що крок встановлення залежностей взявся з кешу.



Крок 8. Змінити список залежностей і ще раз зібрати образ.

Пояснення: тепер шар із залежностями повинен перезібратися.



Крок 9. Зробити висновок наскільки суттєва економія часу.

Пояснення: особливо це критично для великих проєктів і ci.



Крок 10. Міні звіт.

Завдання: опиши шаблон Dockerfile для одного з твоїх реальних проєктів який максимально використовує кеш.