概述

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模式的更多相关文章

  1. vmware centos nat模式下连不上网络解决办法

    简单来讲,当你创建一台虚拟机时,VMware为你虚拟了三种接入网络的方式:桥连接,NAT,使用主机网络,Vmware 10中默认对应 VMnet0,VMnet1,VMnet8 .    当选择桥连接方 ...

  2. CentOS 命令模式下设置静态IP

    ASP.NET程序猿第一次修改IP,之前没有接触过Linux,有点伤不起... # cd /etc/sysconfig/network-scripts/ # ls  会看到 ifcfg-eth0 if ...

  3. Linux - 设置Centos控制台模式的分辨率

    因为我的Centos是用VMware虚拟机安装的,所以这里和直接安装的Centos修改值不太一样. 修改文件: 注意是在启动的系统条目后面"quiet"字段的加上 vga=0x36 ...

  4. 虚拟机centos NAT模式 配置静态ip

    主要的设置有1.配置ip地址段,2.配置NAT(网关.ip地址端.子网掩码),3.修改网卡配置文件(/etc/sysconfig/network-scripts/ifcfg-eth0 ),4.重启网卡 ...

  5. centos救援模式实验笔记

    1.  首先在BIOS中把启动选项设置成DVD光驱启动或者USB启动也是可以的 2.  从光盘启动之后再出现的选项中选择“Rescue installed system”然后按回车确认,具体图下图: ...

  6. VMware下centos桥接模式静态ip配置

    声明:本文转载自http://blog.csdn.net/ltr15036900300/article/details/48828207,非原创. 一.配置虚拟机centos网络 备份网络文件 [ro ...

  7. centos Dockerfile

     FROM centos:latest   LABEL maintainer "wojiushixiaobai"   WORKDIR /opt       ENV GUAC_VER ...

  8. vmware centos 桥接模式 联网记录

    参考这篇文章 https://www.cnblogs.com/jasmine-Jobs/p/5928218.html 记得要修改/etc/sysconfig/network文件的网关配置,因为ip变动 ...

  9. Docker的基本使用及DockerFile的编写

    前言: 最近在准备面试,在复习到Docker相关内容时,想写一些东西分享给大家然后加深一下自己的印象,有了这篇随笔. Docker的简介: docker从文件系统.网络互连到进程隔离等等,极大的简化了 ...

  10. CentOS 常用命令大全

    下面,就给大家介绍这些CentOS常用命令. 一:使用CentOS常用命令查看cpu more /proc/cpuinfo | grep "model name" grep &qu ...

随机推荐

  1. [NOI online2022提高B] 讨论

    题目描述 有 \(n\) 个人正在打模拟赛,模拟赛有 \(n\) 道题目. 有两人都会的题目并且没有人会的题目包含另一个人时,两者之间才会讨论. (定义第 ii 个人会的题目的集合为 \(S_i\) ...

  2. free内存参数介绍

    第一部分Mem行: total 内存总数: 15.7G used 已经使用的内存数: 15.6G free 空闲的内存数: 93M shared 当前已经废弃不用,总是0 buffers Buffer ...

  3. 后端程序员必会的前端知识-02:JavaScript

    第二章. Javascript 它是一种脚本语言,可以用来更改页面内容,控制多媒体,制作图像.动画等等 例子 修改页面内容 js 代码位置 <script> // js 代码 </s ...

  4. The second day learning summary

    1.什么是接口测试? 接口测试是测试系统组件间接口的一种测试.接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过一些特殊的规则也就是协议,来 ...

  5. 递归产生StackOverflowError

    package com.guoba.digui; public class Demo01 { public void A(){ A();//自己调用自己,递归没用好,产生错误java.lang.Sta ...

  6. ASR项目实战-方案设计

    对于语音识别产品的实施方案,给出简易的业务流程,仅供参考. 如下流程图,可以使用如下两个站点查看. web chart Web Sequence Diagrams 文件转写 创建文件转写任务 客户应用 ...

  7. 文心一言 VS 讯飞星火 VS chatgpt (171)-- 算法导论13.2 4题

    四.用go语言,证明:任何一棵含n个结点的二叉搜索树可以通过 O(n)次旋转,转变为其他任何一棵含n个结点的二叉搜索树.(提示:先证明至多n-1次右旋足以将树转变为一条右侧伸展的链.) 文心一言: 这 ...

  8. [NLP复习笔记] 基于负采样的 Skip-gram 及 SGD 训练公式推导

    1. one-hot 向量 我们先了解一下 \(\text{one-hot}\) 向量.\(\text{one-hot}\) 编码是表示分类变量的常见方法,尤其在数据预处理和机器学习的特征工程中.一个 ...

  9. WPF通用权限平台系统,正在研发中(基本于:VS2019 WPF+WebAPI(.NET 6.0)+SqlSugar +SQLServer2014)

  10. 2023-05-31:给定一个整数数组 A,你可以从某一起始索引出发,跳跃一定次数 在你跳跃的过程中,第 1、3、5... 次跳跃称为奇数跳跃 而第 2、4、6... 次跳跃称为偶数跳跃 你可以按以下

    2023-05-31:给定一个整数数组 A,你可以从某一起始索引出发,跳跃一定次数 在你跳跃的过程中,第 1.3.5... 次跳跃称为奇数跳跃 而第 2.4.6... 次跳跃称为偶数跳跃 你可以按以下 ...