# Stage 1: Builder FROM node:22 AS build WORKDIR /usr/src/app COPY package*.json ./ RUN npm install COPY . . # Build your project (e.g., compile TypeScript or bundle JavaScript) RUN npm run build # Stage 2: Runtime FROM my-base-image:latest AS runtime WORKDIR /usr/src/app # Copy only the compiled output and essential files from the build stage COPY --from=build /usr/src/app/dist ./dist COPY --from=build /usr/src/app/package*.json ./ # Install only production dependencies RUN npm ci --omit=dev # Copy the entrypoint script for remote debugging COPY entrypoint.sh /usr/src/app/entrypoint.sh RUN chmod +x /usr/src/app/entrypoint.sh # Expose the application port (using the PORT environment variable) and the debug port (9229) EXPOSE $PORT EXPOSE 9229 # Use the entrypoint script to conditionally enable debugging ENTRYPOINT ["sh", "/usr/src/app/entrypoint.sh"]