mirror of
https://github.com/suitenumerique/meet.git
synced 2026-07-27 12:19:10 +00:00
59 lines
2.2 KiB
Docker
59 lines
2.2 KiB
Docker
# Build Janus from source so ICE-TCP support is present (the canyan image
|
|
# was compiled against libnice 0.1.16, which lacks the runtime ICE-TCP
|
|
# capability Janus 1.1.x feature-detects at startup). Debian 13 ships
|
|
# libnice 0.1.21+ which has ICE-TCP. Also: builds natively on arm64, so
|
|
# no QEMU emulation overhead.
|
|
FROM debian:13-slim AS builder
|
|
|
|
ARG JANUS_VERSION=v1.1.4
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
build-essential ca-certificates git pkg-config \
|
|
autoconf automake libtool gengetopt \
|
|
libssl-dev libsrtp2-dev libglib2.0-dev libopus-dev libogg-dev \
|
|
libcurl4-openssl-dev libconfig-dev libnice-dev \
|
|
libmicrohttpd-dev libjansson-dev libsofia-sip-ua-dev \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /src
|
|
RUN git clone --depth 1 --branch ${JANUS_VERSION} \
|
|
https://github.com/meetecho/janus-gateway.git janus
|
|
|
|
WORKDIR /src/janus
|
|
RUN ./autogen.sh && \
|
|
./configure \
|
|
--prefix=/opt/janus \
|
|
--disable-rabbitmq --disable-mqtt --disable-nanomsg --disable-unix-sockets \
|
|
--disable-data-channels \
|
|
--disable-all-plugins \
|
|
--enable-plugin-sip \
|
|
--disable-all-handlers \
|
|
--disable-all-transports --enable-rest && \
|
|
make -j$(nproc) && \
|
|
make install && \
|
|
make configs
|
|
|
|
FROM debian:13-slim
|
|
|
|
# Debian 13 (trixie) renamed several libs in the time_t-64 transition:
|
|
# libglib2.0-0t64, libcurl4t64. libconfig9 → libconfig11.
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
ca-certificates libssl3 libsrtp2-1 libglib2.0-0t64 libopus0 libogg0 \
|
|
libcurl4t64 libconfig11 libnice10 libmicrohttpd12 libjansson4 \
|
|
libsofia-sip-ua0 \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY --from=builder /opt/janus /opt/janus
|
|
|
|
# Make paths match canyan's so the rest of the compose mounts (configs, demos)
|
|
# Just-Work without changes. The configs we mount in docker/janus/conf/ assume
|
|
# /usr/local/etc/janus and /usr/local/lib/janus.
|
|
RUN ln -s /opt/janus/bin/janus /usr/local/bin/janus && \
|
|
ln -s /opt/janus/etc/janus /usr/local/etc/janus && \
|
|
ln -s /opt/janus/lib/janus /usr/local/lib/janus && \
|
|
ln -s /opt/janus/share/janus /usr/local/share/janus
|
|
|
|
EXPOSE 8088 10100-10120/tcp 10100-10120/udp
|
|
|
|
CMD ["/usr/local/bin/janus"]
|