-
Notifications
You must be signed in to change notification settings - Fork 48
/
Copy pathDockerfile
46 lines (34 loc) · 1.22 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# Building the WebRTC SFU
FROM node:22-bookworm-slim AS builder
RUN apt-get update && apt-get -y install \
git \
make \
python3-pip \
g++
RUN useradd --uid 2004 --user-group webrtc-sfu
# cache packages
COPY /package.json /cache/package.json
RUN cd /cache && npm install --unsafe-perm
COPY / /app
ENV NODE_ENV production
RUN cd /app \
&& rm -rf /app/node_modules && cp -a /cache/node_modules /app/node_modules \
&& cp config/default.example.yml config/production.yml \
&& npm install --unsafe-perm \
&& npm cache clear --force \
&& rm -rf node_modules/mediasoup/worker/out/Release/subprojects \
&& rm -rf node_modules/mediasoup/worker/out/Release/mediasoup-worker.p \
&& rm -rf node_modules/mediasoup/worker/out/Release/deps
# Running the WebRTC SFU
FROM node:22-bookworm-slim
RUN useradd --uid 2004 --user-group webrtc-sfu
ENV NODE_ENV production
COPY --from=builder /app /app
RUN mkdir /home/webrtc-sfu && chown -R webrtc-sfu:webrtc-sfu /app/config /home/webrtc-sfu
USER webrtc-sfu
WORKDIR /app
COPY config/default.example.yml /etc/bigbluebutton/bbb-webrtc-sfu/production.yml
ENV NODE_ENV=production
ENV NODE_CONFIG_DIR=/app/config/:/etc/bigbluebutton/bbb-webrtc-sfu/
ENV ALLOW_CONFIG_MUTATIONS=true
CMD [ "npm", "start" ]