Node image uses npm ci without a lockfile
Summary: The project has only package.json, but the Dockerfile uses npm ci, which requires a package-lock.json or npm-shrinkwrap.json.
Failure type: lockfile_missing
Ecosystem: node
Difficulty: easy

Repository files:
path: Dockerfile
content: FROM node:22-alpine
WORKDIR /app
COPY package.json .
RUN npm ci --omit=dev
COPY index.js .
CMD ["node", "index.js"]
path: package.json
content: {"scripts":{"start":"node index.js"},"dependencies":{"express":"4.19.2"}}
path: index.js
content: const express = require('express');
const app = express();
app.get('/', (_req, res) => res.json({status: 'ok'}));
app.listen(3000, '0.0.0.0');

Failure log:
npm ERR! code EUSAGE
npm ERR! The `npm ci` command can only install with an existing package-lock.json or npm-shrinkwrap.json.

Build command: docker build -t sabnock/sbd-0002 .
Verify commands:
docker build -t sabnock/sbd-0002 .

Oracle patch:
diff --git a/Dockerfile b/Dockerfile
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,6 +1,6 @@
 FROM node:22-alpine
 WORKDIR /app
 COPY package.json .
-RUN npm ci --omit=dev
+RUN npm install --omit=dev
 COPY index.js .
 CMD ["node", "index.js"]

Scoring - must touch:
Dockerfile
Scoring - must contain:
path: Dockerfile
text: RUN npm install --omit=dev
Scoring - must not contain: