Выбор ответа Junior Деплой и эксплуатация спрашивают часто обновлено
Порядок слоёв в Dockerfile
Вопрос
Почему в Dockerfile сначала копируют файлы зависимостей и устанавливают их, а потом копируют код?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Слой с зависимостями кешируется и пересобирается при смене lock-файла. Каждая инструкция создаёт слой, и Docker переиспользует слои, пока их входные файлы не изменились.
Варианты ответа
- Иначе Python не найдёт установленные модули при запуске контейнера
- Слой с зависимостями кешируется и пересобирается при смене lock-файлаправильный ответ
- Так образ безопаснее: код не может изменить установленные зависимости
- Docker требует такой порядок, иначе
pip installупадёт при сборке
Разбор
Каждая инструкция создаёт слой, и Docker переиспользует слои, пока их входные файлы не изменились. Если сначала скопировать весь код, любое изменение строки сбросит кеш, и зависимости будут ставиться заново при каждой сборке. Работоспособность и безопасность от порядка не зависят, это оптимизация времени сборки.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.