2024-02-16 16:21:18 +01:00
|
|
|
# syntax=docker/dockerfile:latest
|
2025-06-27 04:41:28 +00:00
|
|
|
FROM nats:2.11.5-scratch AS nats
|
2025-05-02 14:32:58 +02:00
|
|
|
FROM eturnal/eturnal:1.12.1 AS eturnal
|
2025-05-08 04:41:09 +00:00
|
|
|
FROM strukturag/nextcloud-spreed-signaling:2.0.3 AS signaling
|
2025-02-17 05:00:45 +00:00
|
|
|
FROM alpine:3.21.3 AS janus
|
2023-03-21 18:39:18 +01:00
|
|
|
|
2025-03-05 12:04:12 +00:00
|
|
|
ARG JANUS_VERSION=v1.3.1
|
2023-06-29 16:16:44 +02:00
|
|
|
WORKDIR /src
|
2023-07-19 15:15:13 +02:00
|
|
|
RUN set -ex; \
|
2025-03-26 18:39:32 +01:00
|
|
|
apk upgrade --no-cache -a; \
|
2023-07-19 15:15:13 +02:00
|
|
|
apk add --no-cache \
|
2023-06-29 16:16:44 +02:00
|
|
|
ca-certificates \
|
2023-07-19 15:04:42 +02:00
|
|
|
git \
|
|
|
|
|
autoconf \
|
|
|
|
|
automake \
|
|
|
|
|
build-base \
|
|
|
|
|
pkgconfig \
|
|
|
|
|
libtool \
|
|
|
|
|
util-linux \
|
|
|
|
|
glib-dev \
|
|
|
|
|
zlib-dev \
|
|
|
|
|
openssl-dev \
|
|
|
|
|
jansson-dev \
|
|
|
|
|
libnice-dev \
|
|
|
|
|
libconfig-dev \
|
|
|
|
|
libsrtp-dev \
|
2023-07-20 17:52:30 +02:00
|
|
|
libusrsctp-dev \
|
2023-07-19 15:04:42 +02:00
|
|
|
gengetopt-dev \
|
2023-06-29 16:16:44 +02:00
|
|
|
libwebsockets-dev; \
|
2023-07-19 15:21:40 +02:00
|
|
|
git clone --recursive https://github.com/meetecho/janus-gateway --depth=1 --single-branch --branch "$JANUS_VERSION" /src; \
|
|
|
|
|
/src/autogen.sh; \
|
2023-07-20 17:52:30 +02:00
|
|
|
/src/configure --disable-rabbitmq --disable-mqtt --disable-boringssl; \
|
2023-07-19 15:21:40 +02:00
|
|
|
make; \
|
|
|
|
|
make install; \
|
|
|
|
|
make configs; \
|
|
|
|
|
rename -v ".jcfg.sample" ".jcfg" /usr/local/etc/janus/*.jcfg.sample
|
2021-11-30 11:20:42 +01:00
|
|
|
|
2025-02-17 05:00:45 +00:00
|
|
|
FROM alpine:3.21.3
|
2023-08-09 21:51:10 +02:00
|
|
|
ENV ETURNAL_ETC_DIR="/conf"
|
2025-07-01 17:53:41 +05:30
|
|
|
ENV SKIP_CERT_VERIFY=false
|
2023-10-10 16:24:22 +02:00
|
|
|
COPY --from=janus --chmod=777 --chown=1000:1000 /usr/local /usr/local
|
|
|
|
|
COPY --from=eturnal --chmod=777 --chown=1000:1000 /opt/eturnal /opt/eturnal
|
|
|
|
|
COPY --from=nats --chmod=777 --chown=1000:1000 /nats-server /usr/local/bin/nats-server
|
|
|
|
|
COPY --from=signaling --chmod=777 --chown=1000:1000 /usr/bin/nextcloud-spreed-signaling /usr/local/bin/nextcloud-spreed-signaling
|
2023-06-24 17:54:12 +02:00
|
|
|
|
|
|
|
|
COPY --chmod=775 start.sh /start.sh
|
2023-08-17 14:22:39 +02:00
|
|
|
COPY --chmod=775 healthcheck.sh /healthcheck.sh
|
2023-06-24 17:54:12 +02:00
|
|
|
COPY --chmod=664 supervisord.conf /supervisord.conf
|
2023-05-03 16:37:22 +02:00
|
|
|
|
2021-11-30 11:20:42 +01:00
|
|
|
RUN set -ex; \
|
2024-04-17 17:52:42 +02:00
|
|
|
apk upgrade --no-cache -a; \
|
2023-03-21 18:39:18 +01:00
|
|
|
apk add --no-cache \
|
|
|
|
|
ca-certificates \
|
|
|
|
|
tzdata \
|
|
|
|
|
bash \
|
|
|
|
|
openssl \
|
2021-11-30 11:20:42 +01:00
|
|
|
supervisor \
|
2023-03-21 18:39:18 +01:00
|
|
|
bind-tools \
|
|
|
|
|
netcat-openbsd \
|
2023-06-29 16:16:44 +02:00
|
|
|
\
|
2023-07-19 15:04:42 +02:00
|
|
|
glib \
|
|
|
|
|
zlib \
|
|
|
|
|
libssl3 \
|
|
|
|
|
libcrypto3 \
|
|
|
|
|
jansson \
|
|
|
|
|
libnice \
|
|
|
|
|
libconfig \
|
|
|
|
|
libsrtp \
|
2023-07-20 18:11:31 +02:00
|
|
|
libusrsctp \
|
2023-06-29 16:16:44 +02:00
|
|
|
libwebsockets \
|
|
|
|
|
\
|
2023-11-08 14:52:49 +01:00
|
|
|
shadow \
|
|
|
|
|
grep; \
|
2023-10-10 16:24:22 +02:00
|
|
|
useradd --system -u 1000 eturnal; \
|
2023-03-21 18:39:18 +01:00
|
|
|
apk del --no-cache \
|
2023-06-29 16:16:44 +02:00
|
|
|
shadow; \
|
2023-05-03 16:37:22 +02:00
|
|
|
\
|
2023-05-03 17:32:56 +02:00
|
|
|
# Give root a random password
|
2023-05-03 16:37:22 +02:00
|
|
|
echo "root:$(openssl rand -base64 12)" | chpasswd; \
|
|
|
|
|
\
|
2023-03-21 18:39:18 +01:00
|
|
|
touch \
|
2023-08-17 12:37:48 +02:00
|
|
|
/etc/nats.conf \
|
2023-08-09 21:51:10 +02:00
|
|
|
/etc/eturnal.yml; \
|
2023-03-21 18:39:18 +01:00
|
|
|
echo "listen: 127.0.0.1:4222" | tee /etc/nats.conf; \
|
|
|
|
|
mkdir -p \
|
|
|
|
|
/var/tmp \
|
2023-06-26 18:11:00 +02:00
|
|
|
/conf \
|
2023-03-21 18:39:18 +01:00
|
|
|
/var/lib/turn \
|
|
|
|
|
/var/log/supervisord \
|
2023-06-29 16:16:44 +02:00
|
|
|
/var/run/supervisord \
|
|
|
|
|
/usr/local/lib/janus/loggers; \
|
2023-06-24 17:54:12 +02:00
|
|
|
chown eturnal:eturnal -R \
|
2023-03-21 18:39:18 +01:00
|
|
|
/etc/nats.conf \
|
|
|
|
|
/var/log/supervisord \
|
2023-06-26 18:11:00 +02:00
|
|
|
/var/run/supervisord; \
|
|
|
|
|
chmod 777 -R \
|
2023-07-13 14:40:51 +02:00
|
|
|
/tmp \
|
2023-06-26 18:11:00 +02:00
|
|
|
/conf \
|
|
|
|
|
/var/run/supervisord \
|
2023-08-21 22:10:31 +02:00
|
|
|
/var/log/supervisord; \
|
|
|
|
|
ln -s /opt/eturnal/bin/stun /usr/local/bin/stun; \
|
|
|
|
|
ln -s /opt/eturnal/bin/eturnalctl /usr/local/bin/eturnalctl
|
2023-03-21 18:39:18 +01:00
|
|
|
|
2024-11-06 14:29:18 +01:00
|
|
|
USER 1000
|
2023-06-18 01:46:37 +02:00
|
|
|
ENTRYPOINT ["/start.sh"]
|
2023-06-06 09:22:33 +02:00
|
|
|
CMD ["supervisord", "-c", "/supervisord.conf"]
|
2022-08-25 15:06:23 +02:00
|
|
|
|
2023-08-17 14:22:39 +02:00
|
|
|
HEALTHCHECK CMD /healthcheck.sh
|
2025-05-19 14:31:29 +02:00
|
|
|
LABEL com.centurylinklabs.watchtower.enable="false" \
|
|
|
|
|
org.label-schema.vendor="Nextcloud"
|