freeswitch的docker构建过程

freeswitch的docker构建过程
文章图片


概述 Docker是一个开源的应用容器引擎,可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中,并在任何安装有Docker的机器上运行。
Docker 使你能够将应用程序与基础架构分开,从而可以快速交付软件。
借助 Docker,你可以与管理应用程序相同的方式来管理基础架构。
通过利用 Docker 的方法来快速交付,测试和部署代码,你可以大大减少编写代码和在生产环境中运行代码之间的延迟。

本文的目的是了解最基本的docker构建过程,以便掌握的docker基本知识和原理,暂不涉及dockerfile、compose、集群等信息。

开发环境 centos:CentOS release 7.0 (Final)或以上版本
freeswitch:v1.8.7
GCC:4.8.5

安装docker

yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum makecache fast yum -y install docker-cesystemctl start docker


docker常用命令
docker versiondocker imagesdocker psdocker container ls


构建freeswitch的docker镜像 拉取最新的centos镜像
docker pull centos:centos7


查看
docker images


运行容器
docker run -itd --name centos7-test centos:centos7


通过exec命令进入centos容器
docker exec -it centos7-test /bin/bash


以下命令在dockers容器中运行
yum刷新
yum makecacheyum update


下载freeswitch1.8.7开发库源码

yum install gitgit clone -b v1.8 https://github.com/signalwire/freeswitch.git freeswitch-1.8.7cdfreeswitch-1.8.7chmod 777 * -Rsh support-d/prereq.sh./bootstrap.sh -j./configure --enable-portable-binary --with-gnu-ld --with-python --with-erlang --with-openssl --enable-core-odbc-support --enable-zrtpmakemake install


修改 /usr/local/freeswitch/conf/autoload_configs/switch.conf.xml
"rtp-start-port" value="https://www.it610.com/article/10000"/>"rtp-end-port" value="https://www.it610.com/article/12000"/>


退出容器
exit


以下命令在docker宿主机运行
更新镜像文件
docker commit -m="fs1.8.7 register" -a="zr" centos7-testzr/centos7-freeswitch1.8.7


启动注册容器
docker run -itd -p 192.168.0.152:5060:5060/udp -p 192.168.0.152:10000-12000:10000-12000/udp --name centos7-reg zr/centos7-freeswitch1.8.7 /usr/local/freeswitch/bin/freeswitch -nonat


测试 使用eyebean注册测试。
分别注册1001和1002用户。
使用1001拨打1002,可以呼通,1002可以正常接听。

遗留问题 媒体流有问题,双方没有声音。
挂机信令也有问题,无法送达对方。
初步判断是fs的local地址未设置造成。
另外,构建完成的docker镜像比较大,在网络上传输会比较慢,后期可以通过一些镜像瘦身的技术降低文件大小,使得发布包更加好用。



空空如常
【freeswitch的docker构建过程】求真得真

    推荐阅读