ARG NODE_VERSION=20.9.0 ################### # BUILD FOR CI TESTING ################### FROM node:${NODE_VERSION} # Create app directory WORKDIR /usr/src/app # A wildcard is used to ensure both package.json AND package-lock.json are copied COPY package*.json ./ # Install app dependencies RUN npm ci # Bundle app source COPY . . # Generate prisma client RUN npx prisma generate # Create a "dist" folder RUN npm run build # Run unit tests RUN npm run test:unit:ci # ESLint / Prettier RUN npm run lint:check RUN npm run pretty:check # Start the server CMD [ "node", "dist/main.js" ]