По порядку Middle Docker для разработчика спрашивают часто обновлено
Порядок инструкций Dockerfile
Вопрос
Расставь инструкции стадии сборки Node-приложения так, чтобы кеш слоёв работал лучше всего: при правке кода зависимости не должны переустанавливаться.
Попробуйте сами
Расставьте шаги по порядку стрелками.
- 1
FROM node:22-alpine AS build - 2
COPY . . - 3
WORKDIR /app - 4
COPY package.json package-lock.json ./ - 5
RUN npm ci - 6
RUN npm run build
Показать ответ и разбор
Коротко
Инструкции идут от редко меняющихся к часто меняющимся. Пока package.json и lock-файл те же, слой с npm ci берётся из кеша, и правка кода пересобирает только копирование исходников и сборку.
Правильный порядок
- 1
FROM node:22-alpine AS build - 2
WORKDIR /app - 3
COPY package.json package-lock.json ./ - 4
RUN npm ci - 5
COPY . . - 6
RUN npm run build
Разбор
Инструкции идут от редко меняющихся к часто меняющимся. Пока package.json и lock-файл те же, слой с npm ci берётся из кеша, и правка кода пересобирает только копирование исходников и сборку. Если сначала сделать COPY . ., любая правка сбросит кеш установки зависимостей.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.