FROM node:20 AS shared-config # Install shared/config dependencies WORKDIR / COPY ./shared/config/package*.json . RUN npm install FROM node:20 AS shared-database # Install shared/database dependencies WORKDIR / COPY ./shared/database/package*.json . RUN npm install FROM node:20 AS shared-logger # Install the shared/logger dependencies WORKDIR / COPY ./shared/logger/package*.json . RUN npm install FROM node:20 AS collect-currency WORKDIR / # Install server dependencies COPY ./collect-currency/package*.json ./ RUN npm install # Copying shared dependencies COPY --from=shared-config /node_modules /node_modules COPY --from=shared-database /node_modules /node_modules COPY --from=shared-logger /node_modules /node_modules # Copy all the other files COPY ./collect-currency/ ./ COPY ./shared/ ./shared/ EXPOSE 3000 CMD ["node", "main.js"]