freeswitch on centos dockerfile模式

概述
freeswitch是一款简单好用的VOIP开源软交换平台。
centos7 docker上编译安装fs的流程记录,本文使用dockerfile模式。
环境
docker engine:Version 24.0.6
centos docker:7
freeswitch:v1.6.20
dockerfile
创建空目录,创建dockerfile文件。
github访问经常失败,先下载好源码包,并将fs.1.6.20源码文件夹拷贝到目录下。
mkdir centos.7-fs.1.6.20
cd centos.7-fs.1.6.20
ls
dockerfile freeswitch-1.6.20
dockerfile文件内容如下。
vi dockerfile
FROM centos:7
WORKDIR /root
ADD ./freeswitch-1.6.20 /root/freeswitch
RUN cd /root/ \
&& yum -y update \
&& echo "signalwireusername" > /etc/yum/vars/signalwireusername \
&& echo "pat_signalwiretoken" > /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 install -y autoconf automake libtool gcc-c++ ncurses-devel make zlib-devel libjpeg-devel yasm nasm libevent libevent-devel \
&& yum install -y openssl-devel e2fsprogs-devel curl-devel pcre-devel speex-devel sqlite-devel mysql-devel \
&& yum install -y git ldns-devel libedit-devel lua-devel libsndfile-devel libshout-devel lame-devel \
&& yum install -y which tzdata ilbc2-devel opus-devel \
# && git clone https://github.com/signalwire/freeswitch.git -bv1.6.20 freeswitch \
&& cd /root/freeswitch/ \
&& chmod 775 -R * \
&& sh support-d/prereq.sh \
&& ./bootstrap.sh -j \
&& ./configure \
&& make \
&& make install \
&& cd /root/freeswitch/src/mod/codecs/mod_ilbc \
&& make \
&& make install \
&& cd /root/freeswitch/src/mod/applications/mod_translate \
&& make \
&& make install \
&& ln -s /usr/lib64/ilbc2/libilbc.so.0 /usr/lib64/libilbc.so.0 \
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& yum clean all \
&& rm -rf /var/cache/yum \
&& rm -rf /root/freeswitch \
&& rm -rf /usr/local/freeswitch/conf /usr/local/freeswitch/log /usr/local/freeswitch/recordings
# EXPOSE 5080
VOLUME ["/usr/local/freeswitch/conf", "/usr/local/freeswitch/log", "/usr/local/freeswitch/recordings", "/usr/local/freeswitch/sounds", "/usr/local/freeswitch/webapp"]
CMD /usr/local/freeswitch/bin/freeswitch -nonat -nosql -nonatmap -nocal -nort
镜像操作
制作镜像,注意命令最后一个参数是当前目录“.“。
sudo docker build -t 10.55.55.136:5000/zr/centos.7-fs.1.6.20-test:v1.0 .
[+] Building 768.1s (9/9) FINISHED docker:default
=> [internal] load .dockerignore 0.2s
=> => transferring context: 2B 0.0s
=> [internal] load build definition from dockerfile 0.1s
=> => transferring dockerfile: 2.03kB 0.0s
=> [internal] load metadata for docker.io/library/centos:7 0.0s
=> [1/4] FROM docker.io/library/centos:7 0.0s
=> [internal] load build context 2.3s
=> => transferring context: 190.73MB 2.0s
=> CACHED [2/4] WORKDIR /ROOT 0.0s
=> [3/4] ADD ./freeswitch-1.6.20 /root/freeswitch 1.7s
=> [4/4] RUN cd /root/ && yum -y update && echo "signalwireusername" > /etc/yum/vars/signalwireusername && echo "pat_signalwiretoken" > /etc/yum/vars/signalwiretoken && yum install -y https://$(< 757.8s
=> exporting to image 5.5s
=> => exporting layers 5.5s
=> => writing image sha256:a0a8c5564ad901bc931d9610169b3388f60e07d2201f846d9c35a8603b880e69 0.0s
=> => naming to 10.55.55.136:5000/zr/centos.7-fs.1.6.20-test:v1.0 0.0s
上传镜像到registry。
sudo docker images
sudo docker push 10.55.55.136:5000/zr/centos.7-fs.1.6.20-test:v1.0
下载镜像。
sudo docker pull 10.55.55.136:5000/zr/centos.7-fs.1.6.20-test:v1.0
查看私服registry的镜像版本。
curl -XGET http://10.55.55.136:5000/v2/_catalog
{"repositories":["test/debian","test/registry","zr/centos.7-fs.1.6.19-compile","zr/centos.7-fs.1.6.19-release"]}
curl -XGET http://10.55.55.136:5000/v2/zr/centos.7-fs.1.6.19-release/tags/list
{"name":"zr/centos.7-fs.1.6.19-release","tags":["v1.1","v1.2","v1.3","v1.4","v1.5","v1.6"]}
问题处理
DOCKER使用过程问题汇总。
1, docker容器的时区设置问题,在容器中执行如下命令。
yum install tzdata
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2, 运行一个无日志的Docker容器。
docker run -d --log-driver none your_image_name
3, docker容器访问宿主机上nas目录的状态,取决于docker服务启动时宿主机挂载nas目录的状态。
所以,nas挂载目录有变化的时候,需要重启docker服务,以便docker容器可以正常访问nas目录。
4, docker容器自动重启。
docker run -d --restart=always your_image_name
总结
centos系统后续的维护问题需要关注。
centos和rocky的方向需要验证和抉择一下。
空空如常
求真得真
freeswitch on centos dockerfile模式的更多相关文章
- vmware centos nat模式下连不上网络解决办法
简单来讲,当你创建一台虚拟机时,VMware为你虚拟了三种接入网络的方式:桥连接,NAT,使用主机网络,Vmware 10中默认对应 VMnet0,VMnet1,VMnet8 . 当选择桥连接方 ...
- CentOS 命令模式下设置静态IP
ASP.NET程序猿第一次修改IP,之前没有接触过Linux,有点伤不起... # cd /etc/sysconfig/network-scripts/ # ls 会看到 ifcfg-eth0 if ...
- Linux - 设置Centos控制台模式的分辨率
因为我的Centos是用VMware虚拟机安装的,所以这里和直接安装的Centos修改值不太一样. 修改文件: 注意是在启动的系统条目后面"quiet"字段的加上 vga=0x36 ...
- 虚拟机centos NAT模式 配置静态ip
主要的设置有1.配置ip地址段,2.配置NAT(网关.ip地址端.子网掩码),3.修改网卡配置文件(/etc/sysconfig/network-scripts/ifcfg-eth0 ),4.重启网卡 ...
- centos救援模式实验笔记
1. 首先在BIOS中把启动选项设置成DVD光驱启动或者USB启动也是可以的 2. 从光盘启动之后再出现的选项中选择“Rescue installed system”然后按回车确认,具体图下图: ...
- VMware下centos桥接模式静态ip配置
声明:本文转载自http://blog.csdn.net/ltr15036900300/article/details/48828207,非原创. 一.配置虚拟机centos网络 备份网络文件 [ro ...
- centos Dockerfile
FROM centos:latest LABEL maintainer "wojiushixiaobai" WORKDIR /opt ENV GUAC_VER ...
- vmware centos 桥接模式 联网记录
参考这篇文章 https://www.cnblogs.com/jasmine-Jobs/p/5928218.html 记得要修改/etc/sysconfig/network文件的网关配置,因为ip变动 ...
- Docker的基本使用及DockerFile的编写
前言: 最近在准备面试,在复习到Docker相关内容时,想写一些东西分享给大家然后加深一下自己的印象,有了这篇随笔. Docker的简介: docker从文件系统.网络互连到进程隔离等等,极大的简化了 ...
- CentOS 常用命令大全
下面,就给大家介绍这些CentOS常用命令. 一:使用CentOS常用命令查看cpu more /proc/cpuinfo | grep "model name" grep &qu ...
随机推荐
- zookeeper JavaApi 删除节点
/* * 删除节点 * 1.删除单个节点 * 2.删除带有子节点的节点 * 3.必须成功的删除 * 4.回调 * * */ @Test public void delete1() throws Exc ...
- Spring Boot内置的一些工具类
1.断言Assert工具类 // 要求参数 object 必须为非空(Not Null),否则抛出异常,不予放行 // 参数 message 参数用于定制异常信息. void notNull(Obje ...
- MapStruct使用
1.首先创建一个maven项目 2.导入相关的依赖 注意:lombok的版本 <?xml version="1.0" encoding="UTF-8"?& ...
- 轻量型 Web SCADA 组态软件 TopLink
图扑物联 发布了一款工业物联网边缘侧应用场景的轻量型 Web SCADA 组态软件 Iotopo TopLink.该产品采用 B/S 架构,提供 Web 管理界面,软件包大小仅 23MB,无需安装客户 ...
- 强!推荐一款自动化神器Autolt:不再重复工作
随着互联网不断发展,它给我们带来便利的同时,也带来了枯燥.重复.机械的重复工作.今天,我要和大家分享一款老牌实用的自动化工具:AutoIt,它能够让你告别繁琐的重复性工作,提高工作效率. 这里透露一下 ...
- ElasticSearch之cat plugins API
命令样例如下: curl -X GET "https://localhost:9200/_cat/plugins?v=true&pretty" --cacert $ES_H ...
- 2023.2 IDEA安装激活教程
1.下载安装IntelliJ IDEA 先去官网下载,我这里下载的是最新版本的2023.2,测试过2023最新版本以及2022版本以上的版本没问题. 安装然后打开 提示要输入激活码,先关闭应用,等下再 ...
- Python——第二章:字符串操作——格式化
1. 字符串的格式化问题 举例:要按照如下格式输出一句话 我叫xxx, 我住在xxxx, 我今年xx岁, 我喜欢做xxxxx 这里首先引入占位符概念: %s 占位字符串%d 占位整数%f 占位小数 因 ...
- 查看电脑、手机中已保存的wifi密码
电脑: 以管理员身份运行CMD,执行 netsh wlan show profile netsh wlan export profile folder=C:\ key=clear 此时,用记事本打开对 ...
- 浅谈树形DP
树形DP是动态规划中最难也最常考的内容.具有DP和图论相结合的特点. 但从本质上来说,树形DP只不过是一种线性DP,只是将它与搜索结合起来了而已. 树形DP的基本步骤 读图 树形DP的题目中,通常会给 ...