FROM node:22-alpine ENV NODE_ENV=production # Set the working directory WORKDIR /usr/app # Copy package.json and package-lock.json COPY package*.json ./ # Install dependencies RUN npm install # Change ownership to the non-root user RUN chown -R node:node /usr/app # Copy the rest of the application code COPY . . # Build the application RUN npm run build # Expose the application port EXPOSE 3003 # Run container as non-root (unprivileged) user # The "node" user is provided in the Node.js Alpine base image USER node # Command to run the application CMD ["node", "index.js"]