From ed02aacd106375cfca402b73f8b7efffd4168c1d Mon Sep 17 00:00:00 2001 From: Jim Clark Date: Mon, 14 Apr 2025 21:00:36 -0700 Subject: [PATCH] add Dockerfile --- Dockerfile | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..b1fbf8b --- /dev/null +++ b/Dockerfile @@ -0,0 +1,24 @@ +FROM node:22.12-alpine AS builder + +# Must be entire project because `prepare` script is run during `npm install` and requires all files. +COPY . /app + +WORKDIR /app + +RUN --mount=type=cache,target=/root/.npm npm install + +RUN npm run build + +FROM node:22-alpine AS release + +COPY --from=builder /app/dist /app/dist +COPY --from=builder /app/package.json /app/package.json +COPY --from=builder /app/package-lock.json /app/package-lock.json + +ENV NODE_ENV=production + +WORKDIR /app + +RUN npm ci --ignore-scripts --omit-dev + +ENTRYPOINT ["node", "/app/dist/index.js"]