ARG NODE_IMAGE=node:22-alpine FROM $NODE_IMAGE AS base RUN apk --no-cache add dumb-init RUN mkdir -p /home/node/app && chown node:node /home/node/app RUN npm install -g pnpm WORKDIR /home/node/app USER node RUN mkdir tmp FROM base AS dependencies COPY --chown=node:node ./package.json ./ COPY --chown=node:node ./pnpm-lock.yaml ./ RUN pnpm install COPY --chown=node:node . . FROM dependencies AS build RUN node ace build FROM base AS production ENV NODE_ENV=production ENV PORT=3333 ENV HOST=0.0.0.0 COPY --chown=node:node ./package.json ./ COPY --chown=node:node ./pnpm-lock.yaml ./ RUN pnpm install --prod COPY --chown=node:node --from=build /home/node/app/build . EXPOSE 3333 CMD [ "dumb-init", "node", "bin/server.js" ]