fs.1.10 ON CENTOS7 docker镜像制作

概述
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模式。
空空如常
求真得真
fs.1.10 ON CENTOS7 docker镜像制作的更多相关文章
- MySQL、MongoDB、Redis数据库Docker镜像制作
MySQL.MongoDB.Redis数据库Docker镜像制作 在多台主机上进行数据库部署时,如果使用传统的MySQL的交互式的安装方式将会重复很多遍.如果做成镜像,那么我们只需要make once ...
- #openstack centos6 centos7 kvm镜像制作
#openstack centos6 centos7 kvm 镜像制作 openstack windows 2008镜像 制作 http://www.cnblogs.com/elvi/p/800129 ...
- docker研究-4 docker镜像制作
这次实验以centos镜像为基础镜像进行相关docker镜像制作. 1. 下载centos镜像 [root@localhost ~]# docker pull centosUsing default ...
- 《Docekr入门学习篇》——Docker镜像制作
Docker镜像制作 Docker镜像的构建分为两种,一种是手动构建,一种是dockerfile(自动构建) 手动构建 基于centos镜像进行构建制作Nginx镜像 [root@rbtnode1 ~ ...
- Docker 镜像制作教程:针对不同语言的精简策略
本系列文章将分为三个部分: 第一部分着重介绍多阶段构建(multi-stage builds),因为这是镜像精简之路至关重要的一环.在这部分内容中,我会解释静态链接和动态链接的区别,它们对镜像带来的影 ...
- doris 0.9.0版本docker镜像制作与使用
1. 安装docker 详情请参见本人博客 2. 编译doris 详情请参见doris官网文档 3. 在编译好的doris output文件夹下编写两个Dockerfile 3.1 Dockerfi ...
- Nginx+PHP7.3.9 Docker镜像制作
最近因项目需要制作了多个版本的php docker镜像,制作过程可谓是一波三折,因基于yum的方式安装php的方式在安装扩展插件时很不方便,不容易找到插件对应的yum源,所以PHP在docker镜像中 ...
- 实战【docker 镜像制作与使用】
一.制作docker 镜像 使用spring boot 构建一个简单的web 项目,返回 “Hello,World ”字符串,使用 Maven 打成 jar 包,使用的Linux 环境是 Centos ...
- docker镜像制作Dockerfile
使用 Dockerfile 定制镜像 从刚才的 docker commit 的学习中,我们可以了解到,镜像的定制实际上就是 定制每一层所添加的配置.文件.如果我们可以把每一层修改.安装.构建.操作 的 ...
- presto-gateway 试用以及docker 镜像制作
presto-gateway 是 lyft 团队开源 的prestodb 的工具.以下是一个简单的试用,以及碰到问题的解决 还有就是docker 镜像的制作 Dockerfile 很简单,本地构建然后 ...
随机推荐
- javascript 对http的get请求参数编码encodeURIComponent、encodeURI 和Java 解码
JavaScript 代码encode functionfindNE(){ var nd = document.getElementById("NE").value; nd = e ...
- 【framework】View添加过程
1 前言 WMS启动流程 中介绍了 WindowManagerService 的启动流程,本文将介绍 View 的添加流程,按照进程分为以下2步: 应用进程:介绍从 WindowManagerImpl ...
- win32-读取控制台中所有的字符串
我们可以先读取字符串所占的行数,再乘以控制台的实际宽度 bool ReadFromConsole() { HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDL ...
- 以二进制文件安装K8S之创建CA根证书
为etcd和Kubernetes服务启用基于CA认证的安全机制,需要CA证书进行配置. 如果组织能够提供统一的CA认证中心,则直接使用组织颁发的CA证书即可.如果没有统一的CA认证中心,则可以通过颁发 ...
- yum源配置脚本
# yum源配置脚本 #!/bin/bash mkdir /etc/yum.repos.d/backup mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bac ...
- Golang 常用工具记录
Golang 常用工具记录 1 golang 类 1.1 日常使用的 copier 复制结构体到另外一个结构体 等等类似的功能 asynq Go中简单.可靠.高效的分布式任务队列,使用 redis 做 ...
- 适配http分发Directory.Build.props文件,需要替换默认的微软sdk:8.0映像
背景 我们是把Directory.Build.props及其Import的文件,都放在http://dev.amihome.cn 那么docker build的时候,也是需要下载Directory.B ...
- CentOS系统下,配制nginx访问favicon.ico
sudo vim /etc/nginx/nginx.conf 添加以下配制: # set site faviconlocation /favicon.ico { root html;} 完整配置如下: ...
- 【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
问题描述 使用 .NET Azure.Identity 中的 DefaultAzureCredential 认证并连接到Azure Key Vault中, 在Key Vault 的示例中,并没有介绍如 ...
- mysql-添加、删除索引
-- 添加联合唯一索引 alter table b_report_file add unique index nc (name, code, org_id); -- 删除索引 ALTER TABLE ...