Выбор ответа Junior Dockerfile и multi-stage спрашивают часто обновлено
Порядок COPY для кеша
Вопрос
Какой порядок инструкций даст самую быструю пересборку при частых правках кода Node.js-приложения?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: COPY package.json ./, RUN npm ci, COPY . . Кеш инструкции сбрасывается, если изменились её входные данные, и тогда пересобираются все последующие слои.
Варианты ответа
COPY . ., затемRUN npm ciRUN npm ci, затемCOPY . .COPY package*.json ./,RUN npm ci,COPY . .правильный ответ- Порядок не важен: BuildKit сам переставит слои ради кеша
Разбор
Кеш инструкции сбрасывается, если изменились её входные данные, и тогда пересобираются все последующие слои. Копируя сначала только манифесты, мы сохраняем кеш npm ci, пока не поменялись зависимости. С COPY . . первым любая правка кода перезапустит установку. npm ci до копирования упадёт: нет package.json.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.