···11+FROM node:24-alpine
22+WORKDIR /app
33+44+# copy whole project, install pnpm, and build
55+# install pnpm so package manager is consistent
66+COPY . ./
77+RUN npm i pnpm
88+RUN pnpm i
99+RUN pnpm build
1010+1111+EXPOSE 4321
1212+1313+# set a user so the container doesnt run as root
1414+RUN useradd app
1515+USER app
1616+1717+CMD ["node", "./dist/server/entry.mjs"]