diff --git a/.github/workflows/talk.yml b/.github/workflows/talk.yml index cdf7becd..8711eaa5 100644 --- a/.github/workflows/talk.yml +++ b/.github/workflows/talk.yml @@ -34,6 +34,16 @@ jobs: )" curl -L "https://raw.githubusercontent.com/strukturag/nextcloud-spreed-signaling/$signaling_version/server.conf.in" -o Containers/talk/server.conf.in + # Janus + janus_version="$( + git ls-remote https://github.com/meetecho/janus-gateway v0.*.* \ + | cut -d/ -f3 \ + | sort -V \ + | grep -E "^v[0-9]+\.[0-9]+\.[0-9]+$" \ + | tail -1 + )" + sed -i "s|^ARG JANUS_VERSION=.*$|ARG JANUS_VERSION=$janus_version|" ./Containers/talk/Dockerfile + - name: Create Pull Request uses: peter-evans/create-pull-request@v5 with: diff --git a/Containers/talk/Dockerfile b/Containers/talk/Dockerfile index 4b51a99a..47e2d5ae 100644 --- a/Containers/talk/Dockerfile +++ b/Containers/talk/Dockerfile @@ -1,41 +1,42 @@ FROM nats:2.9.19-scratch as nats FROM strukturag/nextcloud-spreed-signaling:1.1.3 as signaling +FROM alpine:3.18.2 as janus + +ARG JANUS_VERSION=v0.13.4 +WORKDIR /src +RUN apk add --no-cache \ + ca-certificates \ + git autoconf automake build-base pkgconfig libtool util-linux \ + glib-dev zlib-dev openssl-dev jansson-dev libnice-dev libconfig-dev libsrtp-dev gengetopt-dev \ + libwebsockets-dev; \ + git clone --recursive https://github.com/meetecho/janus-gateway -b $JANUS_VERSION /src; \ + /src/autogen.sh; \ + /src/configure; \ + make; \ + make install; \ + make configs; \ + rename -v ".jcfg.sample" ".jcfg" /usr/local/etc/janus/*.jcfg.sample + FROM coturn/coturn:4.6.2-alpine3.18 USER root -COPY --from=nats /nats-server /usr/local/bin/nats-server -COPY --from=signaling /usr/bin/nextcloud-spreed-signaling /usr/local/bin/nextcloud-spreed-signaling - -COPY --chmod=775 start.sh /start.sh -COPY --chmod=664 supervisord.conf /supervisord.conf - RUN set -ex; \ apk add --no-cache \ ca-certificates \ tzdata \ bash \ - janus-gateway \ openssl \ supervisor \ bind-tools \ netcat-openbsd \ - shadow \ - util-linux \ - build-base \ - wget \ - lua5.3-dev \ - luarocks5.3; \ + \ + glib zlib libssl3 libcrypto3 jansson libnice libconfig libsrtp \ + libwebsockets \ + \ + shadow; \ useradd --system talk; \ - luarocks-5.3 install luajson; \ - luarocks-5.3 install ansicolors; \ - rename -v ".jcfg.sample" ".jcfg" /etc/janus/*.sample; \ apk del --no-cache \ - shadow \ - util-linux \ - build-base \ - wget \ - lua5.3-dev \ - luarocks5.3; \ + shadow; \ \ # Give root a random password echo "root:$(openssl rand -base64 12)" | chpasswd; \ @@ -48,11 +49,10 @@ RUN set -ex; \ /conf \ /var/lib/turn \ /var/log/supervisord \ - /var/lib/turn \ - /var/run/supervisord; \ + /var/run/supervisord \ + /usr/local/lib/janus/loggers; \ chown talk:talk -R \ /usr \ - /etc/janus \ /etc/nats.conf \ /var/lib/turn \ /var/log/supervisord \ @@ -64,6 +64,13 @@ RUN set -ex; \ /var/lib/turn \ /var/log/supervisord; +COPY --from=janus /usr/local /usr/local +COPY --from=nats /nats-server /usr/local/bin/nats-server +COPY --from=signaling /usr/bin/nextcloud-spreed-signaling /usr/local/bin/nextcloud-spreed-signaling + +COPY --chmod=775 start.sh /start.sh +COPY --chmod=664 supervisord.conf /supervisord.conf + # Set default talk port https://github.com/nextcloud/all-in-one/issues/1011 ENV TALK_PORT=3478 diff --git a/Containers/talk/supervisord.conf b/Containers/talk/supervisord.conf index 5b43ed41..216a9568 100644 --- a/Containers/talk/supervisord.conf +++ b/Containers/talk/supervisord.conf @@ -1,6 +1,5 @@ [supervisord] nodaemon=true -nodaemon=true logfile=/var/log/supervisord/supervisord.log pidfile=/var/run/supervisord/supervisord.pid childlogdir=/var/log/supervisord/ @@ -28,7 +27,7 @@ stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 # debug-level 3 means warning -command=janus --config=/etc/janus/janus.jcfg --disable-colors --log-stdout --full-trickle --debug-level 3 +command=janus --config=/usr/local/etc/janus/janus.jcfg --disable-colors --log-stdout --full-trickle --debug-level 3 [program:signaling] stdout_logfile=/dev/stdout