fs.1.10 ON CENTOS7 docker镜像制作

news/2024/4/27 14:11:13

概述

freeswitch是一款简单好用的VOIP开源软交换平台。

centos7 docker上编译安装fs1.10版本的流程记录。

环境

docker engine:Version 24.0.6

centos docker:7

freeswitch:v1.10.7

手动模式

centos准备

docker hub拉取centos镜像。

sudo docker pull centos:7

启动docker容器,版本使用centos7。

sudo docker run -itd --name centos.7-fs.1.10-compile centos:7

sudo docker exec -it centos.7-fs.1.10-compile bash

以下步骤均为docker容器“centos.7-fs.1.10-compile”内部操作。

安装scl工具,必选安装

系统更新

yum update -y

官方scl源

yum install -y centos-release-scl centos-release-scl-rh

yum install -y scl-utils scl-utils-build yum-utils

yum repolist && yum clean all && yum makecache

从scl源中搜索软件,可选安装

yum search devtoolset-9-gcc

yum install -y devtoolset-9-gcc

scl enable devtoolset-9 'bash'

scl --list

通过bash环境来设定,仅对特定用户启用,可选

vi ~/.bashrc # or ~/.bash_profile

source scl_source enable devtoolset-9

安装libav,可选安装(不编译mod_av的情况下)

mod_av 依赖libav, libav需要 x264 lib才能支持h264

## download and install libx264

wget -c http://files.freeswitch.org/downloads/libs/libx264.tar.bz2

tar -jxvf libx264.tar.bz2

cd libx264

./configure --enable-static --enable-shared --prefix=/usr

make

make install

cp /usr/lib/pkgconfig/x264.pc /usr/lib64/pkgconfig/

cp /usr/lib/libx264.so /usr/lib64/

cp /usr/lib/libx264.a /usr/lib64/

## download and install libav

wget -c http://files.freeswitch.org/downloads/libs/libav-12.tar.bz2

tar -jxvf libav-12.tar.bz2

cd libav

./configure --enable-pic --enable-shared --enable-libx264 --enable-gpl --extra-libs="-ldl" --extra-cflags=-I/usr/include --extra-ldflags=-L/usr/lib64

make # make CXXFLAGS="-fPIC"

make install

cp /usr/local/lib/pkgconfig/libavcodec.pc /usr/local/lib/pkgconfig/libavdevice.pc /usr/local/lib/pkgconfig/libavfilter.pc /usr/local/lib/pkgconfig/libavformat.pc /usr/local/lib/pkgconfig/libavresample.pc /usr/local/lib/pkgconfig/libavutil.pc /usr/local/lib/pkgconfig/libswscale.pc /usr/lib64/pkgconfig/


## 执行刷新,以让FreeSWITCH运行时可以找到库

ldconfig

编译安装freeswitch,删除mod_av模块编译

yum源

echo "signalwire" > /etc/yum/vars/signalwireusername

echo "TOKEN" > /etc/yum/vars/signalwiretoken

yum install -y https://$(< /etc/yum/vars/signalwireusername):$(< /etc/yum/vars/signalwiretoken)@freeswitch.signalwire.com/repo/yum/centos-release/freeswitch-release-repo-0-1.noarch.rpm

yum install -y epel-release

yum clean all

yum makecache fast

依赖

yum install -y yum-utils

yum-builddep -y freeswitch --skip-broken

yum install -y yum-plugin-ovl rpmdevtools yum-utils git centos-release-scl centos-release-scl-rh

yum remove spandsp-devel spandsp

yum install -y sofia-sip-devel spandsp3-devel libks signalwire-client-c erlang python-devel postgresql-devel

编译

git clone -b v1.10.7 https://github.com/signalwire/freeswitch.git freeswitch-1.10.7

cd freeswitch-1.10.7

##vi configure.ac 删除mod_av行

rm -rf /root/freeswitch-1.10.7/src/mod/applications/mod_av

chmod 777 -R *

./bootstrap.sh -j

##./configure --enable-portable-binary --with-gnu-ld --with-python --with-erlang --with-openssl --enable-core-odbc-support --enable-zrtp

./configure

cd /root/freeswitch-1.10.7/src/mod/codecs/mod_g729/

make

cd -

make

安装

make -j install

make -j cd-sounds-install

make -j cd-moh-install

清理多余的文件。

yum clean all

package-cleanup --quiet --leaves | xargs yum remove -y

package-cleanup --quiet --dupes | xargs yum remove -y

rm -rf /var/cache/yum

rm -rf /root/freeswitch-1.10.7

rm -rf /usr/local/freeswitch/conf /usr/local/freeswitch/log /usr/local/freeswitch/recordings

镜像操作

制作镜像。

sudo docker commit -m="centos.7-fs.1.10-release" -a="zr" centos.7-fs.1.10-compile 10.55.55.136:5000/zr/centos.7-fs.1.10-release:v1.1

上传镜像到registry。

sudo docker images

sudo docker push 10.55.55.136:5000/zr/centos.7-fs.1.10-release:v1.1

下载镜像。

sudo docker pull 10.55.55.136:5000/zr/centos.7-fs.1.10-release:v1.1

启动容器release。

sudo docker run -itd --net=host -v /home/adminx/docker/centos.7-fs.1.6.19/fs-sbc/conf:/usr/local/freeswitch/conf -v /usr/local/freeswitch/log:/usr/local/freeswitch/log -v /usr/local/freeswitch/recordings:/usr/local/freeswitch/recordings --name centos.7-fs.1.10-sbc 10.55.55.136:5000/zr/centos.7-fs.1.10-release:v1.1 /usr/local/freeswitch/bin/freeswitch -nonat -nosql -nonatmap -nocal -nort

sudo docker logs centos.7-fs.1.10-sbc

sudo docker exec -it centos.7-fs.1.10-sbc /usr/local/freeswitch/bin/fs_cli -x status

sudo docker rm -f centos.7-fs.1.10-sbc

总结

fs.1.10版本比1.6版本的安装依赖要更多,最终产生的镜像大小也更大。

后续继续整理fs.1.10镜像的dockerfile模式。

空空如常

求真得真


http://www.mrgr.cn/p/63068006

相关文章

如何在本地跑大模型?

先上地址https://github.com/ollama/ollama/tree/main 官网 https://ollama.com/ 下载运行,然后会默认下载 ollama run llama2选择不同的modelui交互 docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v ollama-webui:/app/backend/data --name oll…

Android 性能优化(六):启动优化的详细流程

书接上文&#xff0c;Android 性能优化&#xff08;一&#xff09;&#xff1a;闪退、卡顿、耗电、APK 从用户体验角度有四个性能优化方向&#xff1a; 追求稳定&#xff0c;防止崩溃追求流畅&#xff0c;防止卡顿追求续航&#xff0c;防止耗损追求精简&#xff0c;防止臃肿 …

如何利用社媒群组如何高效开发国外客户

现在社媒营销也是越来越流行了&#xff0c;很多外贸人都开始做社媒营销。社媒营销相对来说是比较有温度的一个营销&#xff0c;因为大部分社媒平台都支持在线聊天&#xff0c;触达的即时性是比较高的&#xff0c;效果也比传统的一些方法要好一些。 当然做社媒也是有难度的&…

实测52.4MB/s!全国产ARM+FPGA的CSI通信案例分享!

CSI总线介绍与优势 CSI(CMOS sensor parallel interfaces)总线是一种用于连接图像传感器和处理器的并行通信接口,应用于工业自动化、能源电力、智慧医疗等领域,CSI总线接口示意图如下所示(以全志科技T3处理器的CSI0为例)。图1 高带宽:CSI总线支持高速数据传输,可以满足…

Spring实战:采用Spring配置文件管理Bean

文章目录 一、Spring框架概述二、实战&#xff1a;采用Spring配置文件管理Bean&#xff08;一&#xff09;创建Jakarta EE项目&#xff08;二&#xff09;添加Spring依赖&#xff08;三&#xff09;创建杀龙任务类&#xff08;四&#xff09;创建勇敢骑士类&#xff08;五&…

GAMES01 Geometry

生活中有许多曲面、曲线需要去表示。这里也有许多表示几何的方法: Implicitalgebraic surface level sets distance functions ...Explicitpoint cloud polygon mesh subdivision, NURBS ...Implicit表达 通常,隐式表达被定义为f(x,y,z)=0,其中f(x,y,z)是一个xyz的关系表达式…

【开发篇】十、Arthas和BTrace在线定位问题

文章目录 0、补充1、jmap Arthas2、BTrace3、总结 前面排查内存溢出&#xff0c;是通过生成的内存快照&#xff0c;当内存较大时&#xff0c;此方法生成、导出快照慢&#xff08;主要生成堆内存快照的时候&#xff0c;会耽误服务器去处理用户发来的请求&#xff0c;影响体验&a…

SQLite中的动态内存分配(五)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLite中的原子提交&#xff08;四&#xff09; 下一篇&#xff1a;SQLite使用的临时文件&#xff08;二&#xff09; ​概述 SQLite使用动态内存分配来获得 用于存储各种对象的内存 &#xff08;例如&#xff1a…

openGauss Session性能诊断

Session性能诊断 可获得性 本特性自openGauss 1.0.0 版本开始引入。 特性简介 Session性能诊断提供给用户Session级别的性能问题诊断。 客户价值查看最近用户Session最耗资源的事件。 查看最近比较占资源的SQL把资源都消耗在哪些等待事件上。 查看最近比较耗资源的Session把资源…

以太网与数据链路层

以太网是数据链路层中最常用的协议之一&#xff0c;用于在局域网&#xff08;LAN&#xff09;中传输数据。以下是关于以太网协议的一些重要信息&#xff1a; 1. 物理层和数据链路层&#xff1a; 以太网协议涵盖了 OSI 模型中的物理层和数据链路层。物理层负责在网络媒介&…

通俗认识计算机

认识计算机 1 通俗理解计算机是什么计算机就是一个机器,它接收一些数据之后,就开始算算算,然后把计算结果输出出来,这就是计算机。 上面说的那个算算算的东西,有很多种,有的这样算,有的那样算。为了满足不同的算算算,得有个东西去算它,这个东西就叫做程序。不同的程序…

2-17. 物品数据库填写规则

首先把原来界面上没有绑定的字段都给完成private void GetItemDetails(){itemDetailSection.MarkDirtyRepaint();itemDetailSection.Q<IntegerField>("itemID").value = activeItem.itemID;itemDetailSection.Q<IntegerField>("itemID").Regis…

修复ubuntu引导

一、制作ubuntu启动U盘 进入启动盘后&#xff0c;点击Try ubuntu&#xff0c;进入U盘的ubuntu系统。 二、配置和添加源 sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update三、运行 Boot Repair重新制作引导 sudo boot-repair注意&#x…

ArcGIS Enterprise 环境重装

2. 情况说明 在服务器上已经配好了 ArcGIS Enterprise,环境如下:ArcGIS Server 配置了 DataStore,适配了 WebAdaptor,并与 Portal 联合。 Portal 适配了 WebAdatpor,并联合了 ArcGISServer 现在要重装服务器的 ArcGIS Enterprise 内容,想继续使用之前的配置和存储内容,需…

Django框架之web框架优化

一、web应用框架简介及手撸web框架 软件开发架构详细:网络编程之网络架构及其趋势 - Xiao0101 - 博客园 (cnblogs.com) 软件开发架构分为两种:c/s架构:客户端软件(client)—服务端软件(server) b/s架构 :浏览器(Browser)------服务端软件(server)总结:BS本质上也是CS架构 …

AXI总线介绍(详解)

原文地址:https://zhuanlan.zhihu.com/p/610401819 一、什么是总线 总线就是一组统一的信号和协议,通常用于设备之间的通讯和传输主设备master:主动发出请求(如 CPU) 从设备slave :被动相应请求(如 内存)二、最简单的总线(同步读 SRAM – 读写数据延迟固定 1 周期 ) …

electron打包桌面版.exe之vue项目踩坑(vue3+electron 解决打包后首页打开空白,打包后路由不跳转及请求不到后端数据等问题)

vue项目https://www.qingplus.cn/components-web/index打包桌面版问题集合 一、静态资源加载问题 npm run electron_dev桌面版运行后页面空白&#xff0c;内容未加载。 填坑&#xff1a; 打包配置要用相对路径 vite.config.ts文件中的base要改成./&#xff0c;之前加了项目…