diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 375a1c7e..42e56d8b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,4 +31,4 @@ jobs: file: ./Dockerfile platforms: linux/amd64,linux/arm64 push: true - tags: mirotalk/sfu:latest \ No newline at end of file + tags: mirotalk/sfu:latest \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 76d4d815..9a7fc233 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,22 +1,32 @@ -FROM node:18-slim +# Use a lightweight Node.js image +FROM node:20-slim +# Set working directory WORKDIR /src -# https://mediasoup.org/documentation/v3/mediasoup/installation/ +# Set environment variable to skip downloading prebuilt workers ENV MEDIASOUP_SKIP_WORKER_PREBUILT_DOWNLOAD="true" +# Install necessary system packages and dependencies +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + build-essential \ + python3 \ + python3-pip \ + && rm -rf /var/lib/apt/lists/* + +# Copy package.json and install npm dependencies COPY package.json . +RUN npm install -RUN \ - DEBIAN_FRONTEND=noninteractive apt-get update && \ - apt-get install -y --no-install-recommends build-essential python3-pip && \ - npm install && \ - apt-get -y purge --auto-remove build-essential python3-pip && \ - apt-get install -y --no-install-recommends python3 && \ - npm cache clean --force && \ - rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/* /usr/share/doc/* +# Cleanup unnecessary packages and files +RUN apt-get purge -y --auto-remove build-essential python3-pip \ +&& npm cache clean --force \ +&& rm -rf /tmp/* /var/tmp/* /usr/share/doc/* +# Copy the application code COPY app app COPY public public -CMD npm start +# Set default command to start the application +CMD ["npm", "start"]