ARG NODE_IMAGE=node:22-slim ###### First Stage - Creating base ###### FROM $NODE_IMAGE as base RUN mkdir -p /home/node/app && chown node:node /home/node/app RUN npm install --global pnpm WORKDIR /home/node/app USER node RUN mkdir tmp ###### Second Stage - Installing dependencies ###### FROM base AS dependencies COPY --chown=node:node ./package*.json ./ RUN pnpm install COPY --chown=node:node . . ###### Third Stage - Building Stage ###### FROM dependencies AS build RUN node ace build ###### Final Stage - Production ###### 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