当前位置:首页 » 《休闲阅读》 » 正文

Docker安装WebRTC下TURN服务

10 人参与  2024年04月23日 13:25  分类 : 《休闲阅读》  评论

点击全文阅读


 详细实现方式以及代码下载请前往 https://www.passerma.com/article/90

实现效果

博客图片

一、手动构建镜像

1.新建Dockerfile文件

文件用于编译镜像
以alpine为基础镜像
添加coturn需要的依赖库
获取coturn并进行编译
通过start.sh启动turnserver服务

Dockerfile

FROM alpineRUN apk add make \  gcc\  g++ \  wget \  libevent-dev \  openssl-dev \  libffi-dev \  curlRUN wget https://github.com/coturn/coturn/archive/4.5.1.3.tar.gz \  && tar -zxvf 4.5.1.3.tar.gz \  && cd coturn-4.5.1.3 \  && ./configure && make && make install && cd .. \  && rm -rf coturn-4.5.1.3 4.5.1.3.tar.gzCOPY ./start.sh /start.shEXPOSE 3478 3478/udpENTRYPOINT ["/start.sh"]

2.新建start.sh文件

需要先给予start.sh文件可执行权限

chmod +x start.sh

start.sh

#!/bin/shcreateConf() {  if [ -z "$EXTERNAL_IP" ]; then    ip_tmp=$(curl http://icanhazip.com)    if [ $? -eq 0 ]; then      echo "获取 EXTERNAL_IP 成功: $ip_tmp"      EXTERNAL_IP="$ip_tmp"    else      echo "获取 EXTERNAL_IP 失败,请手动修改"      EXTERNAL_IP="0.0.0.0"    fi  else    echo "EXTERNAL_IP 已经设置为: $EXTERNAL_IP"  fi  cat <<EOF >>/etc/turnserver.conflistening-device=eth0listening-port=3478listening-ip=0.0.0.0external-ip=$EXTERNAL_IPfingerprintlt-cred-mechuser=$user_tmprealm=localhostno-tlsv1no-tlsv1_1no-tlsv1_2EOF}echo "====== 配置 turnserver ======"user_tmp=${TURN_USERNAME:-"user"}:${TURN_PASSWORD:-"pass"}if [ ! -f /etc/turnserver.conf ]; then  echo "创建 /etc/turnserver.conf 配置文件"  createConf  echo "====== 启动 turnserver ======"  echo "external-ip=$EXTERNAL_IP"  echo "user=$user_tmp"else  echo "/etc/turnserver.conf 配置文件已存在"  echo "====== 启动 turnserver ======"fiexec turnserver -v -c /etc/turnserver.conf

3.编译镜像

docker build -t passerma/turnserver .

二、使用现有镜像

docker pull passerma/turnserver

三、镜像使用

1.直接运行

docker run -itd --name turnserver -p 3478:3478 -p 3478:3478/udp passerma/turnserver

2.带参数运行

支持修改公网 ip、用户名、密码

docker run -itd --name turnserver \-e EXTERNAL_IP=1.2.3.4 -e TURN_USERNAME=myuser -e TURN_PASSWORD=mypass \-p 3478:3478 -p 3478:3478/udp \passerma/turnserver

3.配置修改

配置文件位置 /etc/turnserver.conf
配置文件默认如下

listening-device=eth0listening-port=3478listening-ip=0.0.0.0external-ip=0.0.0.0fingerprintlt-cred-mechuser=user:passrealm=localhostno-tlsv1no-tlsv1_1no-tlsv1_2

默认用户名密码为 user:pass

四、项目源码

 详细实现方式以及代码下载请前往 https://www.passerma.com/article/90


点击全文阅读


本文链接:http://zhangshiyu.com/post/99073.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1