# Dockerfile — coturn + playit single container # Build: docker build -t coturn-playit:latest . FROM coturn/coturn:edge-debian ARG PLAYIT_VERSION="0.16.3" ENV PLAYIT_VERSION=${PLAYIT_VERSION} ENV DEBIAN_FRONTEND=noninteractive # Install utilities: curl, ca-certificates, tar (playit release is a tarball) RUN apt-get update && \ apt-get install -y --no-install-recommends \ curl ca-certificates tar gzip bash && \ rm -rf /var/lib/apt/lists/* WORKDIR /opt # Download playit agent binary (official releases on GitHub) # NOTE: the release asset name may vary by version — this downloads the linux amd64 tarball if present. # If the asset name for chosen version differs, change the URL accordingly. RUN curl -sL "https://github.com/playit-cloud/playit-agent/releases/download/v0.16.3/playit-linux-amd64" -o /tmp/playit.tar.gz && \ if [ -f /tmp/playit.tar.gz ]; then \ tar -xzf /tmp/playit.tar.gz -C /opt && \ chmod +x /opt/playit* || true ; \ else \ echo "WARNING: playit binary not downloaded. Check PLAYIT_VERSION or release asset names." ; \ fi && rm -f /tmp/playit.tar.gz # Create folders for configs RUN mkdir -p /etc/coturn /etc/playit /var/lib/coturn # Copy default turnserver.conf and entrypoint script into image # COPY turnserver.conf /etc/coturn/turnserver.conf # COPY init.sh /usr/local/bin/entrypoint.sh # RUN chmod +x /usr/local/bin/entrypoint.sh # # Expose TURN/STUN default ports (you can adjust or publish other ranges when running container) # EXPOSE 3478 3478/udp 5349 5349/udp # # Note: coturn uses ephemeral UDP relay ports (e.g. 49152-65535) — publish them on docker run if needed # STOPSIGNAL SIGTERM # ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] # CMD ["run"]