Сборка образа подтянула не ту версию зависимости
В Dockerfile стоит:
COPY package.json ./
RUN npm install
COPY . .
Локально всё работает, но пересборка того же коммита в CI через неделю дала образ, который падает в рантайме из-за изменившегося поведения одной из библиотек. Что не так со сборкой?
- Не хватает кэширования слоёв: без него `npm install` на каждой сборке ходит в реестр и подтягивает разные версии
- Проблема в порядке инструкций: `COPY . .` должен идти до установки зависимостей, иначе npm ставит пакеты вслепую
- Нужно зафиксировать точные версии всех зависимостей прямо в `package.json`, убрав диапазоны, и не хранить lock-файл
- В образ не попал `package-lock.json`, поэтому `npm install` заново разрешает версии; нужен lock-файл и `npm ci`
