作業系統 :CentOS 7.6_x64 FreeSWITCH版本 :1.10.9 Docker版本:23.0.6 FreeSWITCH這種比較復雜的系統,使用容器部署是比較方便的,今天記錄下CentOS 7環境下使用docker構建FreeSWITCH編譯環境及打包發布的程序,
一、資源準備
1、安裝docker環境
1)移除舊版本(可選)yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
2)安裝依賴項
yum install -y yum-utils device-mapper-persistent-data lvm23)添加yum源
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo 或 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo4)查看可用docker版本
yum list docker-ce --showduplicates | sort -r

5)安裝docker服務
指定版本安裝(這里指定版本安裝):yum install docker-ce-cli-23.0.6 docker-ce-23.0.6 containerd.io

查看docker版本資訊:
docker version
6)配置docker服務
啟動docker服務: systemctl start docker 配置docker服務開機啟動: systemctl enable docker 查看docker服務狀態:systemctl status docker
2、下載FreeSWITCH源代碼
可從如下地址獲取: https://files.freeswitch.org/releases/freeswitch/
也可通過wget獲取:
wget https://files.freeswitch.org/releases/freeswitch/freeswitch-1.10.9.-release.tar.gz
3、下載FreeSWITCH依賴代碼
主要依賴以下代碼庫: libks-1.8.2 : https://github.com/signalwire/libks/archive/refs/tags/v1.8.2.tar.gz sofia-sip-1.13.14 : https://github.com/freeswitch/sofia-sip/archive/refs/tags/v1.13.14.tar.gz spandsp : https://github.com/freeswitch/spandsp.git signalwire-c : https://github.com/signalwire/signalwire-c/archive/refs/tags/1.3.0.tar.gz 可通過wget或git獲取:wget https://github.com/signalwire/libks/archive/refs/tags/v1.8.2.tar.gz wget https://github.com/freeswitch/sofia-sip/archive/refs/tags/v1.13.14.tar.gz git clone https://github.com/freeswitch/spandsp.git wget https://github.com/signalwire/signalwire-c/archive/refs/tags/1.3.0.tar.gz
二、制作base包
1、docker基礎鏡像選型
這里使用Debian 11 (bullseye)作為基礎鏡像:docker image pull debian:bullseye

2、在docker內編譯FreeSWITCH
1)啟動debian容器docker run --name debian --network host -t -d debian:bullseye

2)復制原始碼到debian容器
docker cp freeswitch-1.10.9.-release.tar.gz debian:/usr/src/ docker cp fs1.10.9-deps debian:/usr/src/

3)更新apt源(可選)
這里使用清華的源來加速安裝:https://mirrors.tuna.tsinghua.edu.cn/help/debian/
更新apt源:
>/etc/apt/sources.list echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free" >> /etc/apt/sources.list echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free" >> /etc/apt/sources.list echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free" >> /etc/apt/sources.list echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free" >> /etc/apt/sources.list cat /etc/apt/sources.list apt update

4)安裝編譯依賴項
apt install gcc g++ autoconf automake make cmake yasm uuid-dev libvpx-dev unixodbc-dev ncurses-dev zlib1g-dev libjpeg-dev libtiff-dev liblua5.1-0-dev libsqlite3-dev libsndfile-dev libavformat-dev libswscale-dev libcurl4-openssl-dev libpcre3-dev libspeex-dev libspeexdsp-dev libedit-dev libtool libldns-dev libopus-dev libpq-dev安裝libks:
tar zxvf libks-1.8.2.tar.gz cd libks-1.8.2 cmake . make make install安裝sofia-sip:
tar zxvf sofia-sip-1.13.14.tar.gz cd sofia-sip-1.13.14 ./bootstrap.sh ./configure make make install安裝spandsp:
cd spandsp/ ./bootstrap.sh ./configure make make install export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH} echo "export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH}" >> /etc/profile ldconfig安裝signalwire-c:
tar zxvf signalwire-c-1.3.0.tar.gz cd signalwire-c-1.3.0 cmake . make make install5)編譯FreeSWITCH 大致步驟:
./rebootstrap.sh && ./configure && make具體參考 : https://www.cnblogs.com/MikeZhang/p/centos7InstallFs20221007.html 6)安裝及運行FreeSWITCH(可選) 執行make install安裝FreeSWITCH

運行FreeSWITCH:
/usr/local/freeswitch/bin/freeswitch -nonat
3、匯出容器快照作為基礎編譯鏡像
1)移除FreeSWITCH源代碼及依賴項rm -rf /usr/src/freeswitch-1.10.9.-release* rm -rf /usr/src/fs1.10.9-deps/2)匯出debian容器快照
docker export -o debian_fs_builder.tar 164f8b171a95

3)給匯出的容器快照添加標簽
docker import debian_fs_builder.tar docker image tag 91f9e45241ed fs:base

4)匯出基礎編譯鏡像
docker image save fs:base -o fs-base.tar tar zcvf fs-base.tar.gz fs-base.tar

預編譯的基礎鏡像(fs-base.tar.gz)可從如下渠道獲取:
關注微信公眾號(聊聊博文,文末可掃碼)后回復 20230617 獲取,4、測驗基礎編譯鏡像
1)匯入鏡像docker load -i fs-base.tar

2)啟動容器
docker run --name fs --network host -t -d fs:base /bin/bash

3)編譯及運行FreeeSWITCH
僅復制FreeSWITCH原始碼過去即可編譯及安裝,演示視頻可從如下渠道獲取: 關注微信公眾號(聊聊博文,文末可掃碼)后回復 2023061701 獲取,三、自動構建及打包
1、準備原始碼
原始碼檔案:freeswitch-1.10.9.-release.tar.gz2、撰寫DockerFile及entrypoint

3、構建docker鏡像
自動構建腳本如下:#! /bin/bash tar zxvf freeswitch-1.10.9.-release.tar.gz docker build -t fs:1.0.0 . docker image save fs:1.0.0 -o fs_v1.0.0.tar tar zcvf fs_v1.0.0.tar.gz fs_v1.0.0.tar rm -rf fs_v1.0.0.tar
4、發布fs鏡像及啟動
tar zxvf fs_v1.0.0.tar.gz docker load -i fs_v1.0.0.tar ./run.sh

使用基礎編譯鏡像自動構建版本及運行容器的演示視頻,可從如下渠道獲取:
關注微信公眾號(聊聊博文,文末可掃碼)后回復 2023061702 獲取,四、資源下載
本文涉及原始碼和檔案,可以從如下途徑獲取: 關注微信公眾號(聊聊博文,文末可掃碼)后回復 20230617 獲取,
微信公眾號:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/555470.html
標籤:其他
下一篇:返回列表
