Spaces:
Paused
Paused
| # Dockerfile — coturn + playit (Option 1, noninteractive install) | |
| FROM coturn/coturn:edge-debian | |
| # Build args (change if upstream playit repo changes) | |
| ARG PLAYIT_GPG_URL="https://playit-cloud.github.io/ppa/key.gpg" | |
| ARG PLAYIT_APT_LINE="deb [signed-by=/etc/apt/trusted.gpg.d/playit.gpg] https://playit-cloud.github.io/ppa/data ./" | |
| # Set timezone and noninteractive frontend to avoid debconf prompts | |
| ENV DEBIAN_FRONTEND=noninteractive \ | |
| TZ=Etc/UTC \ | |
| LANG=C.UTF-8 | |
| USER root | |
| # Install required packages, add playit apt repo, install playit package | |
| RUN set -eux; \ | |
| apt-get update; \ | |
| apt-get install -y --no-install-recommends \ | |
| apt-transport-https \ | |
| ca-certificates \ | |
| curl\ | |
| socat\ | |
| gnupg \ | |
| tzdata \ | |
| dirmngr \ | |
| net-tools \ | |
| gettext-base \ | |
| ; \ | |
| # ensure tzdata doesn't prompt (already set TZ env); configure timezone non-interactively | |
| ln -fs /usr/share/zoneinfo/$TZ /etc/localtime; \ | |
| dpkg-reconfigure --frontend noninteractive tzdata || true; \ | |
| # prepare apt trusted key location | |
| mkdir -p /etc/apt/trusted.gpg.d; \ | |
| # fetch playit GPG key and dearmor it for apt | |
| curl -fsSL "${PLAYIT_GPG_URL}" -o /tmp/playit.key.gpg; \ | |
| gpg --dearmor --batch --yes -o /etc/apt/trusted.gpg.d/playit.gpg /tmp/playit.key.gpg; \ | |
| rm -f /tmp/playit.key.gpg; \ | |
| # add apt source list | |
| echo "${PLAYIT_APT_LINE}" > /etc/apt/sources.list.d/playit-cloud.list; \ | |
| apt-get update; \ | |
| # Install playit, telling dpkg to accept default config answers if asked | |
| apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" playit; \ | |
| # cleanup apt caches | |
| apt-get clean; \ | |
| rm -rf /var/lib/apt/lists/* /tmp/* | |
| # COPY --chown=root rule.p1 /etc/iptables/rules.v4 | |
| # Create non-root user and runtime dirs | |
| RUN useradd -m -u 1000 appuser || true; \ | |
| mkdir -p /etc/coturn /var/lib/coturn /home/appuser/app; \ | |
| chown -R appuser:appuser /home/appuser /var/lib/coturn | |
| WORKDIR /home/appuser/app | |
| # Copy optional local coturn config; prefer mounting at runtime for secrets | |
| COPY turnserver.conf /etc/coturn/turnserver.conf | |
| # Copy entrypoint (make sure you have entrypoint.sh in build context) | |
| COPY init.sh /usr/local/bin/entrypoint.sh | |
| RUN chmod +x /usr/local/bin/entrypoint.sh | |
| # Expose typical ports | |
| # EXPOSE 3478/tcp 3478/udp 5349/tcp 5349/udp 7860/tcp | |
| EXPOSE 7860 42656 5349 50000-50010/udp | |
| USER root | |
| ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] | |
| #CMD ["echo", "All Started"] | |
| # CMD ["turnserver", "-c", "/etc/coturn/turnserver.conf", "--listening-port=7860","--tls-listening-port=5349","--user=myuser:mypassword","--log-file=stdout","--simple-log", "--no-cli", "--log-file=stdout"] | |