# Use Node.js 22 LTS slim image as base FROM node:22-slim # Set working directory WORKDIR /src # Set environment variable to skip downloading prebuilt workers ENV MEDIASOUP_SKIP_WORKER_PREBUILT_DOWNLOAD="true" ENV NODE_ENV="production" # Install necessary system packages and dependencies RUN apt-get update \ && apt-get install -y --no-install-recommends \ build-essential \ python3 \ python3-pip \ ffmpeg \ && rm -rf /var/lib/apt/lists/* # Rename config.template.js to config.js COPY ./app/src/config.template.js ./app/src/config.js # Copy package*.json and install npm dependencies COPY package*.json ./ RUN npm ci --only=production --silent # Cleanup unnecessary packages and files RUN apt-get purge -y --auto-remove \ python3-pip \ build-essential \ && npm cache clean --force \ && rm -rf /tmp/* /var/tmp/* /usr/share/doc/* # Copy the application code COPY app app COPY public public # Set default command to start the application CMD ["npm", "start"]