По порядку Middle Docker для разработчика спрашивают часто обновлено

Порядок инструкций Dockerfile

Вопрос

Расставь инструкции стадии сборки Node-приложения так, чтобы кеш слоёв работал лучше всего: при правке кода зависимости не должны переустанавливаться.

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

Расставьте шаги по порядку стрелками.

  1. 1
    FROM node:22-alpine AS build
  2. 2
    COPY . .
  3. 3
    WORKDIR /app
  4. 4
    COPY package.json package-lock.json ./
  5. 5
    RUN npm ci
  6. 6
    RUN npm run build
Показать ответ и разбор

Коротко

Инструкции идут от редко меняющихся к часто меняющимся. Пока package.json и lock-файл те же, слой с npm ci берётся из кеша, и правка кода пересобирает только копирование исходников и сборку.

Правильный порядок

  1. 1
    FROM node:22-alpine AS build
  2. 2
    WORKDIR /app
  3. 3
    COPY package.json package-lock.json ./
  4. 4
    RUN npm ci
  5. 5
    COPY . .
  6. 6
    RUN npm run build

Разбор

Инструкции идут от редко меняющихся к часто меняющимся. Пока package.json и lock-файл те же, слой с npm ci берётся из кеша, и правка кода пересобирает только копирование исходников и сборку. Если сначала сделать COPY . ., любая правка сбросит кеш установки зависимостей.

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

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