ARG ENV=production ARG MONGO_VERSION=latest ARG PORT=9001 ## mongo build stage FROM mongo:${MONGO_VERSION} AS database WORKDIR / COPY mongo-init.js ./docker-entrypoint-initdb.d/ ## stage one, build the service FROM node:20-alpine AS build ENV NODE_ENV development WORKDIR /home/node/app COPY package*.json ./ COPY tsconfig.json ./ COPY lib ./lib RUN ls -a RUN yarn install RUN yarn build ## this is stage two , where the app actually runs FROM node:20-alpine AS containerize ENV NODE_ENV ${ENV} WORKDIR /home/node/app COPY package*.json ./ RUN yarn install --frozen-lockfile --production COPY --from=build /home/node/app/dist . EXPOSE ${PORT} CMD ["node","server/index.js"]