当前位置: 首页> 健康> 知识 > 安心保险官方网站_最近国际时事_网络营销优秀案例_新品推广计划与方案

安心保险官方网站_最近国际时事_网络营销优秀案例_新品推广计划与方案

时间:2025/7/9 4:46:55来源:https://blog.csdn.net/huiguo_/article/details/144379019 浏览次数:0次
安心保险官方网站_最近国际时事_网络营销优秀案例_新品推广计划与方案

文章目录

  • 一、安装docker
    • 1.1 卸载旧版本的Docker
    • 1.2 安装最新版本的docker
    • 1.3 配置docker镜像源
  • 二、制作FreeSwitch镜像
    • 2.1 制作开发环境FreeSwitch镜像
      • 2.1.1 编写Dockerfile
      • 2.1.2 准备FreeSwitch-1.10.7源码
      • 2.1.3 构建镜像
      • 2.1.4 生成开发基础镜像容器
      • 2.1.5 编译FreeSwitch
        • 1.进入容器
        • 2.进入源码目录编译
      • 2.1.6 运行
    • 2.2 制作生产环境FreeSwitch镜像
      • 2.2.1 编写Dockerfile
      • 2.2.2 将开发环境里面的镜像内容复制到宿主机做准备
      • 2.2.3 构建镜像
      • 2.2.4 生成生产镜像容器

一、安装docker

本次使用的宿主机是网友提供的centos7.9

1.1 卸载旧版本的Docker

1.执行以下命令来卸载旧版本的Docker和相关的软件包,这个命令会帮您卸载掉所有列出的与Docker相关的程序。

说明 如果系统提示说部分软件包没有安装,说明您尚未安装此软件包。

sudo yum -y remove \
docker-ce \
containerd.io \
docker-ce-rootless-extras \
docker-buildx-plugin \
docker-ce-cli \
docker-compose-plugin

2.Docker默认保存位置是/var/lib/docker/,卸载Docker时,镜像、容器、存储卷和网络不会被自动删除。如果您想要删除这些数据,需要手动删除。

3.删除Docker相关源,请执行以下命令。

 
sudo rm -f /etc/yum.repos.d/docker*.repo

1.2 安装最新版本的docker

本次安装是使用阿里云的资源

  1. 更新您的包管理工具。
 
sudo yum -y update
  1. 添加阿里云源到您的实例中,这个源包含Docker软件包,方便您使用命令来安装和更新Docker。

重要 由于网络原因,如果跳过此步可能会导致您安装Docker失败。

  • 如果您的实例网络可以访问公网。
sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 如果您的实例网络无法访问公网,使用VPC网络访问地址。
sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo
  1. 安装Docker社区版本,容器运行时containerd.io,以及Docker构建和Compose插件。

说明 使用Compose插件时,命令中间不用连字符,比如docker compose version。

sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. 启动Docker并设置Docker守护进程在系统启动时自动启动,这样可以确保每次系统启动时,Docker服务也会自动启动。

说明 如果您的systemctl命令执行异常,请参见在Linux实例中执行systemctl命令报错怎么办?

sudo systemctl start docker
sudo systemctl enable docker
  1. 通过查看Docker版本命令,验证Docker是否安装成功。
sudo docker -v

如下图回显信息所示,表示Docker已安装成功。

在这里插入图片描述

1.3 配置docker镜像源

  1. 修改镜像源
vim /etc/docker/daemon.json
{
"registry-mirrors" :
[
"https://docker.m.daocloud.io",
"https://noohub.ru",
"https://huecker.io",
"https://dockerhub.timeweb.cloud",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.nju.edu.cn",
"https://docker.rainbond.cc",
"http://docker.mirrors.ustc.edu.cn",
"https://axvfsf7e.mirror.aliyuncs.com",
"https://docker.mirrors.sjtug.sjtu.edu.cn"
]
}
  1. 重新加载
 systemctl daemon-reload
  1. 查看是否生效

出现以下情况,说明生效,特别说明,如果拉不下来镜像,多试几次(如果进行拉不下来,它会轮训切换镜像源
在这里插入图片描述

二、制作FreeSwitch镜像

说明
这里我们制作两个镜像:1.开发镜像 2.生产镜像

这里各有优缺点,你要是用开发镜像用于生产环境,我也不拦着您,也没太大关系,无非就是大了点

区别

  • 镜像大小 :开发镜像(大) 生产镜像(小)
  • 镜像包含库 :开发镜像(开发库) 生产镜像(生产库)
  • 二次开发:开发镜像(可以) 生产镜像(不可以,但是可以将生产的好的复制进来)

共同点

  • 是否可用作生产 :开发镜像(是) 生产镜像(是)

2.1 制作开发环境FreeSwitch镜像

2.1.1 编写Dockerfile

mkdir -p /usr/local/docker/freeswitch_build
cd /usr/local/docker/freeswitch_build
vim Dockerfile

Dockerfile内容如下

FROM debian:bullseyeRUN sed -i 's/http:\/\/deb.debian.org/http:\/\/mirrors.aliyun.com/g' /etc/apt/sources.listRUN apt-get update 
RUN apt updateRUN DEBIAN_FRONTEND=noninteractive apt-get -yq install \
# buildbuild-essential cmake automake autoconf 'libtool-bin|libtool' pkg-config gnupg2 wget lsb-release vim git \
# generallibssl-dev zlib1g-dev libdb-dev unixodbc-dev libncurses5-dev libexpat1-dev libgdbm-dev bison erlang-dev libtpl-dev libtiff5-dev uuid-dev \
# corelibpcre3-dev libedit-dev libsqlite3-dev libcurl4-openssl-dev nasm \
# core codecslibogg-dev libspeex-dev libspeexdsp-dev \
# mod_enumlibldns-dev \
# mod_python3python3-dev \
# mod_avlibavformat-dev libswscale-dev libavresample-dev \
# mod_lualiblua5.2-dev lua-cjson \
# mod_opuslibopus-dev \
# mod_mariadblibmariadb3 \
# mod_pgsqllibpq-dev \
# mod_sndfilelibsndfile1-dev libflac-dev libogg-dev libvorbis-dev \
# mod_shoutlibshout3-dev libmpg123-dev libmp3lame-devCOPY freeswitch /usr/local/src/freeswitchRUN ldconfigWORKDIR /usr/local/RUN apt-get clean && \apt clean && \apt-get purge --autoremove && \rm -rf /var/lib/apt/lists/*  && \rm -rf  /tmp/* /var/tmp/*

在这里插入图片描述

2.1.2 准备FreeSwitch-1.10.7源码

笔者提供了网盘给大家下载(网盘提供了所有的安装包,包括制作好的docker包)

链接: https://pan.baidu.com/s/16YDn0_vmmb6bIi0oZuoL7A?pwd=f7gv 提取码: f7gv 复制这段内容后打开百度网盘手机App,操作更方便哦

git 克隆获取

git clone https://github.com/signalwire/freeswitch.git -bv1.10.7 freeswitch

如果git有困难的,直接取官网下载
https://github.com/signalwire/freeswitch/tree/v1.10.7
在这里插入图片描述
然后解压一下

unzip freeswitch-1.10.7.zip 

重命名,因为Dockerfile里面写的是freeswitch

mv freeswitch-1.10.7 freeswitch 

在这里插入图片描述

2.1.3 构建镜像

cd /usr/local/docker/freeswitch_build
docker build -t freeswitch_build:1.10.7 .

在这里插入图片描述
构建完成

在这里插入图片描述

2.1.4 生成开发基础镜像容器

  1. 创建容器
docker run -dit \--name fs_build \--net host \--restart no \--log-driver journald \-v fs_build_date:/usr/local \freeswitch_build:1.10.7 \/bin/bash

在这里插入图片描述

逐项解析

  • docker run 是 Docker 的命令,用于创建并启动一个新的容器。

  • -d (detach): 容器将在后台运行(分离模式),终端不会被挂起,而是立即返回到命令行。

  • -i (interactive): 即使没有附加也保持 STDIN 打开,通常与 -t 一起使用以获得交互式 shell。

  • -t (tty): 分配一个伪 TTY(终端),用于提供交互式 shell 环境。

  • --name fs_build: 为容器指定自定义名称 fs_build,方便通过名字引用容器而非 ID。

  • --net host: 使用主机网络模式,容器共享主机的网络命名空间,包括所有网络接口。这提高了性能但减少了隔离性。

  • --restart no: 设置容器的重启策略为 no,即当容器停止后,Docker 不会自动重启它。

  • --log-driver journald: 指定日志驱动程序为 journald,将容器日志发送到系统日志服务,如 systemd-journald,便于集成系统级别的日志管理和监控。

  • -v fs_build_date:/usr/local: 挂载卷 fs_build_date 到容器内的 /usr/local 目录。如果卷不存在,Docker 会自动创建。卷允许在主机和容器之间共享数据,并且在容器删除后数据仍然保留。

  • freeswitch_build:1.10.7: 要运行的 Docker 镜像名称和标签,freeswitch_build 是镜像名称,1.10.7 表示版本号,指示 Docker 使用该特定版本的 FreeSWITCH 构建镜像启动容器。

  • /bin/bash: 容器启动时执行的命令,在此例中启动 Bash shell。由于使用了 -d 选项,shell 将在后台运行,可以通过 docker exec 命令稍后连接到它。

  1. 查看是否容器成功
docker ps

如图表示创建成功
在这里插入图片描述

2.1.5 编译FreeSwitch

1.进入容器
docker exec -it fs_build bash

在这里插入图片描述

2.进入源码目录编译
cd /usr/local/src/freeswitch
./bootstrap.sh -j 
./configure 

错误一:checking for spandsp >= 3.0... configure: error: no usable spandsp; please install spandsp3 devel package or equivalent
在这里插入图片描述
解决方案:安装相关包

cd /usr/local/src
git clone https://github.com/freeswitch/spandsp.git 
cd spandsp
git checkout -b finecode20230705 0d2e6ac65e0e8f53d652665a743015a88bf048d4
./bootstrap.sh -j 
./configure 
make 
make install 

安装成功
在这里插入图片描述

更新环境

vi ~/.bashrc

vi ~/.bash_profile

在文件末尾添加以下内容:

 export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH}

然后控制台执行
这样,当用户登录时,这些命令就会自动执行,从而使设置永久生效。

ldconfig

重新编译

cd /usr/local/src/freeswitch
./bootstrap.sh -j 
./configure 

错误二:checking for sofia-sip-ua >= 1.12.12... configure: error: no usable sofia-sip; please install sofia-sip-ua devel package or equivalent
在这里插入图片描述

解决方案:安装相关包

cd /usr/local/src/
git clone https://github.com/freeswitch/sofia-sip.git
cd sofia-sip
./bootstrap.sh
./configuremake
make installldconfig

重新编译

cd /usr/local/src/freeswitch
./bootstrap.sh -j 
./configure 
make

错误三:Makefile:977: *** You must install libks to build mod_signalwire. Stop.

在这里插入图片描述
解决方案:安装相关包

cd /usr/local/src
wget https://cmake.org/files/v3.13/cmake-3.13.3.tar.gz
tar -zxvf cmake-3.13.3.tar.gz
cd cmake-3.13.3 ./bootstrapmakemake install
cd /usr/local/src
git clone -bv1.8.3 https://github.com/signalwire/libks.git /usr/local/src/libks
cd libks
cmake .
make
make install

signalwire 做了一些迁移改动,所以最新版本的仓库不适应,所以要指定一下分支

cd /usr/local/src
git clone  -b1.3.0  https://github.com/signalwire/signalwire-c.git
cd signalwire-c
cmake .
make
make install
vi ~/.bashrc
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:${PKG_CONFIG_PATH}

在这里插入图片描述

ldconfig
ln -sf /usr/local/lib64/pkgconfig/signalwire_client.pc /usr/lib64/pkgconfig/signalwire_client.pccp -r /usr/local/lib/pkgconfig/*.pc /usr/lib64/pkgconfig/
cp -r /usr/local/lib/* /usr/lib64/
ldconfig
cd /usr/local/src/freeswitch
./bootstrap.sh -j 
./configure 
make && make install
ln -sf /usr/local/freeswitch/bin/freeswitch /usr/bin/
ln -sf /usr/local/freeswitch/bin/fs_cli /usr/bin/

如有依赖报错,缺什么安装什么

成功如图

在这里插入图片描述

2.1.6 运行

启动

freeswitch -nonat -nc 

在这里插入图片描述

进入控制台

fs_cli

在这里插入图片描述

# 后台启动freeswitch服务
freeswitch -nc -rp
freeswitch -nonat -nc -rp  //不检查路由穿透行,加上此参数后会启动很快
freeswitch -stop
fs_cli
# freeswitch -help-help                  -- 显示本帮助信息-version               -- 显示版本信息-rp                    -- 开启高优先级(实时)设置-nosql                 -- 不使用SQL,show channels 类的命令将不能显示结果-nonat                 -- 如果路由器支持uPnP或NAT-PMP,则FreeSWITCH可以自动解决NAT穿越问题。如果路由器不支持,则该选项可以使启动更快-stop                  -- 关闭 FreeSWITCH,它会在run目录中查找 PID文件-nc                    -- 启动到后台模式,没有控制台

通话三十秒自动挂断

解决:打开/etc/freeswitch/sip_profiles下的配置文件internal.xml,将外网配置注释掉,重启FS;

在这里插入图片描述

2.2 制作生产环境FreeSwitch镜像

在制作之前我们可以先看一下镜像大小
在这里插入图片描述
如果你尚可接受

第一步将容器提交成镜像

 docker commit -a 作者名 -m 备注信息 [容器 ID] [给新的镜像命名]

第二步:保存镜像

docker save -o freeswitch1_10_7_build_dev.tar 新的镜像ID

在这里插入图片描述
镜像在分享的网盘里面

第三步,迁移新的机器

docker load -i  freeswitch1_10_7_build_dev.tar

启动完事

接下来,我将带领制作开发环境的

2.2.1 编写Dockerfile

因为我后面想做FS对接大模型,所以我需要python3服务

所以这里需要进入开发环境编译一下mod_python3

docker exec -it fs_build bash
 cd /usr/local/src/freeswitch/src/mod/languages/mod_python3
make
make install

如果你也有相关需求,请关注
Freeswitch-Python3开发

编写Dockerfile

mkdir -p /usr/local/docker/freeswitch_prod
cd /usr/local/docker/freeswitch_prod
vim Dockerfile

Dockerfile内容如下

FROM debian:bullseyeRUN sed -i 's/http:\/\/deb.debian.org/http:\/\/mirrors.aliyun.com/g' /etc/apt/sources.listRUN apt-get update 
RUN apt updateRUN DEBIAN_FRONTEND=noninteractive apt-get -yq install \# general 类软件包libssl1.1 zlib1g libdb5.3 libncurses5 libexpat1 libgdbm6 libuuid1 libsqlite3-0 libjsoncpp24 \# core 类软件包                 libcurl4 libspeex1 libspeexdsp1 libpcre3 libedit2 \# 额外包libcom-err2  libgmp10  libgnutls30  openssl \# 安装 core codecs 类软件包libtpl0 unixodbc libtiff5 libldns3 \         # mod_python3 类软件包        python3-dev python3-pip \      # mod_av 类软件包            #libavformat56 libswscale5 libavresample4     \ # mod_lua 类软件包     liblua5.2-0 lua-cjson lua-socket \ # mod_opus 类软件包                 libopus0  \# mod_mariadb 类软件包  libmariadb3  \# mod_pgsql 类软件包 libpq5 \# mod_sndfile 类软件包                       libsndfile1 libflac8 libogg0 libvorbis0a libvorbisenc2  \# mod_shout 类软件包 libshout3 libmpg123-0 libmp3lame0   \                #安装时区包tzdata COPY freeswitch /usr/local/freeswitch
COPY lib /usr/local/libCOPY freeswitch.py /usr/lib/python3/dist-packages/freeswitch.pyRUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple websocket-clientRUN ldconfig# 设置软链接
RUN ln -sf /usr/local/freeswitch/bin/freeswitch /usr/local/bin/
RUN ln -sf /usr/local/freeswitch/bin/fs_cli /usr/local/bin/WORKDIR /usr/local/# 设置时区为北京时间
ENV TZ=Asia/ShanghaiRUN apt-get clean && \apt clean && \apt-get purge --autoremove && \rm -rf /var/lib/apt/lists/*  && \rm -rf /usr/local/src/spandsp  /usr/local/src/sofia-sip  /tmp/* /var/tmp/*

2.2.2 将开发环境里面的镜像内容复制到宿主机做准备

cd /usr/local/docker/freeswitch_prod
docker cp fs_build:/usr/local/freeswitch ./
docker cp fs_build:/usr/local/lib ./
docker cp fs_build:/usr/lib/python3/dist-packages/freeswitch.py ./

在这里插入图片描述

2.2.3 构建镜像

cd /usr/local/docker/freeswitch_prod
docker build -t freeswitch_prod:1.10.7 .

在这里插入图片描述

2.2.4 生成生产镜像容器

这里看就很小了
在这里插入图片描述

创建容器

docker run -dit \--name fs_prod \--net host \--restart no \--log-driver journald \freeswitch_prod:1.10.7 \freeswitch  -nonat

在这里插入图片描述

进入容器

docker exec -it fs_prod fs_cli

在这里插入图片描述

关键字:安心保险官方网站_最近国际时事_网络营销优秀案例_新品推广计划与方案

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: