← До списку лабораторних по Docker
Повний опис / сценарій лабораторної:
Мета: навчитися використовувати багатостадійну збірку щоб кешувати залежності і прискорити збірку у 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 для одного з твоїх реальних проєктів який максимально використовує кеш.