# --- Stage 1: Build & Install Dependencies --- FROM node:22.14.0-alpine AS builder WORKDIR /app # Copy package.json and lock file (if used) from source subdir COPY /src/Managing.Web3Proxy/package*.json ./ ENV NODE_ENV production # Install dependencies (development dependencies are fine here) RUN npm ci --no-audit --fund=false # Copy the rest of the source code COPY src/Managing.Web3Proxy/ . # Run the build script RUN npm run build # --- Stage 2: Production Runtime --- FROM node:22.14.0-alpine AS production WORKDIR /app # Copy essential files from the builder stage COPY --from=builder /app/package*.json ./ COPY --from=builder /app/node_modules/ ./node_modules/ # Copy the compiled application code (assuming 'dist' is the output folder) COPY --from=builder /app/dist/ ./dist/ # Set production environment again for the runtime stage ENV NODE_ENV production EXPOSE 4111 # Start the application from the compiled output CMD ["fastify", "start", "-l", "info", "dist/app.js"]