FROM node:18 AS base WORKDIR /usr/local/app ################ FRONTEND BUILD ################# FROM base AS client-build WORKDIR /usr/local/app/frontend COPY SerpentRace_Frontend/package.json SerpentRace_Frontend/package-lock.json ./ RUN npm ci COPY SerpentRace_Frontend/ ./ RUN npm run build ################ BACKEND BUILD ################# # FROM base AS backend-build # WORKDIR /usr/local/app/backend # COPY SerpentRace_Backend/package.json SerpentRace_Backend/package-lock.json ./ # RUN npm ci # COPY SerpentRace_Backend/ ./ # # Copy frontend build output to backend static directory # COPY --from=client-build /usr/local/app/frontend/dist ./src/static # generate js files from ts files RUN npm run build ################ PRODUCTION IMAGE ################# FROM backend-build AS prod WORKDIR /usr/local/app/backend ENV NODE_ENV=development RUN npm ci EXPOSE 3000 CMD ["node", "dist/index.js"]