rtpengine_mr12.0 基础建设容器运行

news2024/11/20 15:27:38

目录

Dockerfile

rtpengine.conf

容器内编译安装

RTPEngine 正常提供功能

1. 启动RTPEngine服务

2. 删除 RTPEngine服务

3. 加载内核模块

检查所有进程是否正在运行

上传到仓库


博主wx:yuanlai45_csdn 博主qq:2777137742

后期会创建粉丝群,为同学们提供分享交流平台以及提供官方发送的福利奖品~

ubuntu:focal.tar 上传到了资源里面

Dockerfile

FROM ubuntu:focal

ENV DEBIAN_FRONTEND=noninteractive
ENV DEB_BUILD_PROFILES="pkg.ngcp-rtpengine.nobcg729"

# Add backports repository and install updates and dependencies
RUN apt-get update && \
    apt-get install -y software-properties-common && \
    add-apt-repository -y ppa:ubuntu-toolchain-r/test && \
    apt-get update && \
    apt-get -y install git vim tmux dpkg-dev debhelper libxtables-dev default-libmysqlclient-dev gperf libavcodec-dev libavfilter-dev libavformat-dev \
    libavutil-dev libbencode-perl libcrypt-openssl-rsa-perl libcrypt-rijndael-perl libdigest-crc-perl libdigest-hmac-perl \
    libevent-dev libhiredis-dev libio-multiplex-perl libio-socket-inet6-perl libiptc-dev libjson-glib-dev libjson-perl libnet-interface-perl \
    libpcap0.8-dev libpcre3-dev libsocket6-perl libspandsp-dev libssl-dev libswresample-dev libsystemd-dev libxmlrpc-core-c3-dev \
    markdown dkms module-assistant keyutils libnfsidmap2 nfs-common rpcbind libglib2.0-dev zlib1g-dev libavcodec-extra \
    libcurl4-openssl-dev netcat-openbsd netcat iptables iproute2 net-tools iputils-ping libconfig-tiny-perl libwebsockets-dev \
    libmnl-dev libmosquitto-dev libncurses-dev libnftnl-dev libopus-dev libtest2-suite-perl pandoc python3-websockets

# Fetch RTPEngine code (tag mr12.0)
RUN git clone https://github.com/sipwise/rtpengine && \
    cd rtpengine && git checkout mr12.0

# Copy configuration file
COPY rtpengine.conf /etc/rtpengine/rtpengine.conf

# Expose ports
EXPOSE 22222/udp 30000-40000/udp

# Set working directory
WORKDIR /rtpengine

# Start a shell by default
CMD ["/bin/bash"]

rtpengine.conf

[rtpengine]
interface = eth0
listen-ng = 22222
port-min = 30000
port-max = 40000
log-level = 6
log-facility = daemon
log-facility-cdr = local0
log-facility-rtcp = local1

容器内编译安装

进入容器的 bash shell

docker run --privileged -it rtpengine:mr12.0 /bin/bash

重新进入 

docker exec --privileged -it ebbac54ad7c7 /bin/bash

先直接make,可以发现 daemon 和 recording-daemon 和 perf-tester模块编译完成,也就是说四个主要模块,只差 kernel-module 没有编译完成

cd /rtpengine/kernel-module
root@ebbac54ad7c7:/rtpengine/kernel-module# make
make -C /lib/modules/5.15.0-113-generic/build M=/rtpengine/kernel-module O=/lib/modules/5.15.0-113-generic/build modules
make[1]: *** /lib/modules/5.15.0-113-generic/build: No such file or directory.  Stop.
make: *** [Makefile:34: modules] Error 2

安装内核头文件:

apt-get update
apt-get install -y linux-headers-$(uname -r)

然后make就可以了

到现在为止四个模块就已经全部编译完成

RTPEngine 正常提供功能

1. 启动RTPEngine服务

在容器内,您需要启动RTPEngine守护进程。通常,这可以通过以下命令完成:

nohup /rtpengine/daemon/rtpengine --config-file=/etc/rtpengine/rtpengine.conf > /var/log/rtpengine.log 2>&1 &

2. 删除 RTPEngine服务

pkill -f rtpengine

3. 加载内核模块

exit

docker run --privileged -it rtpengine:mr12.0 /bin/bash

尝试使用 insmod 命令直接加载编译好的模块:

insmod /rtpengine/kernel-module/xt_RTPENGINE.ko

检查所有进程是否正在运行

ps aux | grep rtpengine

上传到仓库

打镜像

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

//如果您的容器 ID 是 abc123,想将新镜像命名为 rtpengine:new_version,可以运行:
docker commit abc123 rtpengine:new_version

docker images 命令验证新镜像是否已创建

docker images | grep rtpengine

将这个镜像推送到私有仓库(ip:port),需要给镜像添加适当的标签

docker tag rtpengine:new_version ip:port/rtpengine:new_version

然后推送到私有仓库

docker push ip:port/rtpengine:new_version

 注意配置

cat /etc/docker/daemon.json
{
        "insecure-registries": ["ip:port"]
}

创作不易,希望读者三连支持 💖
赠人玫瑰,手有余香 💖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1896013.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

地埋RF射频电子标识器探测仪ED8000(V400版)使用操作说明之1测量准备工作

地埋RF射频电子标识器探测仪ED8000(V400版)是一台集成了多频率、多种ID标识器调制模式、高低灵敏度调节、可读写标识器等全功能、高性能电子标识器探测仪。它有着极高的灵敏度,同时具备良好的噪声抑制能力,不仅适合专业测绘人员,普…

监控平台—Zabbix对接grafana

目录 一、安装grafana并启动 二.浏览器访问 三、导入zabbix数据,对接grafana 四.如何导入模版 一、安装grafana并启动 添加一台服务器192.168.80.102 初始化操作 systemctl disable --now firewalld setenforce 0 vim /etc/selinux/config SELINUXdisabled cd /…

东哥教你如何用Orange Ai pro为家里做一个垃圾分类检测机器

前言 最近入手了一块香橙派(Orange Ai Pro)的板子,他们的口号是:为AI而生,这让一个算法工程师按捺不住了, 之前主要是在RKNN和ESP32等设备上部署AI模型,看到官方介绍的强大AI算力,很…

入门PHP就来我这(纯干货)08

~~~~ 有胆量你就来跟着路老师卷起来! -- 纯干货,技术知识分享 ~~~~ 路老师给大家分享PHP语言的知识了,旨在想让大家入门PHP,并深入了解PHP语言。 1 PHP对象的高级应用 1.1 final关键字 final 最终的、最后的。被final修饰过的类…

如何在电脑设备上恢复已删除的照片

丢失 PC、智能手机或 USB 闪存盘上的照片可能会让人不知所措。幸运的是,使用最好的照片恢复软件,您可以在 Windows 和 Android 上恢复已删除的照片。本博客讨论如何使用照片恢复来恢复丢失的照片。 数码照片是我们记忆的重要组成部分。然而,它…

UE4_材质基础_切线空间与法线贴图

学习笔记,不喜勿喷,侵权立删,祝愿大家生活越来越好! 一、切线空间 在《OpenGL基础11:空间》中提到了观察空间、裁剪空间、世界空间等。切线空间和它们一样,都属于坐标空间 上面就是一个…

FPGA的理解,个人的见解,不一定对

类似于面包板上搭建电路,但是使用的是逻辑单元模块;如加法器,减法器,寄存器等 没有模拟电路的电容,电阻;但是逻辑单元的底层实现,使用MOS管等电路实现电路的开关;从而表示0&#xf…

springai+pgvector+ollama实现rag

首先在ollama中安装mofanke/dmeta-embedding-zh:latest。执行ollama run mofanke/dmeta-embedding-zh 。实现将文本转化为向量数据 接着安装pgvector(建议使用pgadmin4作为可视化工具,用navicate会出现表不显示的问题) 安装好需要的软件后我们…

【python】OpenCV—Nighttime Low Illumination Image Enhancement

文章目录 1 背景介绍2 代码实现3 原理分析4 效果展示5 附录np.ndindexnumpy.ravelnumpy.argsortcv2.detailEnhancecv2.edgePreservingFilter 1 背景介绍 学习参考来自:OpenCV基础(24)改善夜间图像的照明 源码: 链接&#xff1a…

vue2 webpack使用optimization.splitChunks分包,实现按需引入,进行首屏加载优化

optimization.splitChunks的具体功能和配置信息可以去网上自行查阅。 这边简单讲一下他的使用场景、作用、如何使用: 1、没用使用splitChunks进行分包之前,所有模块都揉在一个文件里,那么当这个文件足够大、网速又一般的时候,首…

原厂商是什么意思?云管平台原厂商有哪些企业?

最近不少IT小伙伴在问关于原厂商相关问题,今天我们就来简单回答一下,仅供参考! 原厂商是什么意思? 原厂商,或称原厂,是指生产特定产品或零部件的原始厂家。 软件原厂商是什么意思? 软件原厂…

课设:选课管理系统(Java+MySQL)

在本博客中,我将介绍用Java、MySQL、JDBC和Swing GUI开发一个简单的选课管理系统。 技术栈 Java:用于编写应用程序逻辑MySQL:用于存储和管理数据JDBC:用于连接Java应用程序和MySQL数据库Swing GUI:用于构建桌面应用程…

Let‘s Encrypt免费SSL证书申请最简单的步骤

随着互联网的飞速发展,网络安全问题愈发凸显其重要性。而HTTPS协议作为保障网站数据传输安全的重要手段,已经得到了广泛的应用。 申请Lets Encrypt免费泛域名SSL证书步骤 登录来此加密网站,输入域名,可以勾选泛域名和包含根域。…

Appium环境搭建,华为nova8鸿蒙系统(包括环境安装,环境配置)(一)

1.安装代码工具包 appium python client pip install appium-python-client 2.安装JDK 参考链接: ant+jmeter+jenkins从0实现持续集成(Windows)-CSDN博客 3.下载并安卓SDK 下载地址:AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载…

搜维尔科技:详谈ART的工具追踪技术

您的生产流程中是否已经受益于刀具跟踪系统?您是否意识到它们的价值?因为它们可以优化您的装配顺序,从而节省您的时间和金钱。 目前我们提供两种工具跟踪解决方案: 1.ART与 VERPOSE的解决方案——易于使用的图像识别 安装在工…

C语言 | Leetcode C语言题解之第213题打家劫舍II

题目&#xff1a; 题解&#xff1a; int robRange(int* nums, int start, int end) {int first nums[start], second fmax(nums[start], nums[start 1]);for (int i start 2; i < end; i) {int temp second;second fmax(first nums[i], second);first temp;}retur…

[激光原理与应用-97]:南京科耐激光-激光焊接-焊中检测-智能制程监测系统IPM介绍 - 1 - 什么是焊接以及传统的焊接方法

目录 一、什么是焊接 1.1 概述 1.2 基本原理 二、传统的焊接技术与方法 2.1 手工电弧焊&#xff1a; 1、定义与原理 2、特点 3、焊条类型 4、应用领域 5、安全注意事项 2.2 气体保护焊&#xff1a; 1、原理与特点 2、应用领域 3、气体选择 4、注意事项 2.3 电阻…

六角法兰面螺栓机械性能

六角法兰面螺栓&#xff0c;作为一种常见的紧固件&#xff0c;因其独特的设计和优良的机械性能&#xff0c;在众多工业领域中占据重要地位。与传统的六角头螺栓相比&#xff0c;六角法兰面螺栓的底部有一个扁平的法兰面&#xff0c;能够提供更大的接触面积&#xff0c;分散压力…

[leetcode] n个骰子的点数

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:vector<double> statisticsProbability(int num) {vector<double> dp(6, 1.0 / 6.0);for (int i 2; i < num; i) {vector<double> tmp(5 * i 1, 0);for (int j 0; j < dp.size()…

算法day02 回文 罗马数字转整数

回文 搞错了String类型的indexOf方法&#xff0c;理解成获取对应下标的值&#xff0c;实际上是在找对应值的下标。 4ms 耗时最少的方法尽量不会去调用jdk提供的方法&#xff0c;而是直接使用对应的数学逻辑关系来处理&#xff0c; 甚至用 代替equals方法。 罗马数字转整数 考…