Выбор ответа Junior Деплой и эксплуатация спрашивают часто обновлено

Порядок слоёв в Dockerfile

Вопрос

Почему в Dockerfile сначала копируют файлы зависимостей и устанавливают их, а потом копируют код?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Слой с зависимостями кешируется и пересобирается при смене lock-файла. Каждая инструкция создаёт слой, и Docker переиспользует слои, пока их входные файлы не изменились.

Варианты ответа

  1. Иначе Python не найдёт установленные модули при запуске контейнера
  2. Слой с зависимостями кешируется и пересобирается при смене lock-файлаправильный ответ
  3. Так образ безопаснее: код не может изменить установленные зависимости
  4. Docker требует такой порядок, иначе pip install упадёт при сборке

Разбор

Каждая инструкция создаёт слой, и Docker переиспользует слои, пока их входные файлы не изменились. Если сначала скопировать весь код, любое изменение строки сбросит кеш, и зависимости будут ставиться заново при каждой сборке. Работоспособность и безопасность от порядка не зависят, это оптимизация времени сборки.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.