docker编译部署freeswitch-1.10.10

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: docker编译部署freeswitch-1.10.10

部署环境

CentOS Linux release 7.9.2009
Docker version 24.0.7
Docker Compose version v2.22.0
freeswitch version v1.10.10

关闭防火墙

systemctl stop iptables

systemctl disable iptables

构建Dockerfile

构建freeswitch镜像时,一起把nginx也放进去了,为了后续使用Java对接freeswitch时下载录音用;大陆地区下载海外的服务依赖会比较慢,这里使用了华为镜像(因为我们云服务全部在华为云上),也可以替换成mirrors.aliyun.com或者mirrors.163.com。

FROM debian:bullseye
MAINTAINER caoliang1918 <caoliang1918@gmail.com>

WORKDIR /usr/local/freeswitch
ADD docker-entrypoint.sh /usr/local/
RUN chmod +x /usr/local/docker-entrypoint.sh

RUN echo voice9 >  /etc/hostname
RUN sed -i 's/http:\/\/deb.debian.org/http:\/\/mirrors.huaweicloud.com/g' /etc/apt/sources.list
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -yq install vim git sngrep

RUN git clone -b 'v1.10.10' https://github.com/signalwire/freeswitch /usr/src/freeswitch
RUN git clone -b 'v2.0.3'   https://github.com/signalwire/libks /usr/src/libs/libks
RUN git clone -b 'v1.13.17' https://github.com/freeswitch/sofia-sip /usr/src/libs/sofia-sip
RUN git clone https://github.com/freeswitch/spandsp /usr/src/libs/spandsp && cd /usr/src/libs/spandsp  &&  git  checkout  0d2e6ac
RUN git clone -b 'v2.0.0'   https://github.com/signalwire/signalwire-c /usr/src/libs/signalwire-c

RUN DEBIAN_FRONTEND=noninteractive apt-get -yq install \
# nginx
   nginx \
# build
    build-essential cmake automake autoconf 'libtool-bin|libtool' pkg-config \
# general
    libssl-dev zlib1g-dev libdb-dev unixodbc-dev libncurses5-dev libexpat1-dev libgdbm-dev bison erlang-dev libtpl-dev libtiff5-dev uuid-dev \
# core
    libpcre3-dev libedit-dev libsqlite3-dev libcurl4-openssl-dev nasm \
# core codecs
    libogg-dev libspeex-dev libspeexdsp-dev \
# mod_enum
    libldns-dev \
# mod_python3
    python3-dev \
# mod_av
    libavformat-dev libswscale-dev libavresample-dev \
# mod_lua
    liblua5.2-dev \
# mod_opus
    libopus-dev \
# mod_pgsql
    libpq-dev \
# mod_sndfile
    libsndfile1-dev libflac-dev libogg-dev libvorbis-dev \
# mod_shout
    libshout3-dev libmpg123-dev libmp3lame-dev

RUN cd /usr/src/libs/libks && cmake . -DCMAKE_INSTALL_PREFIX=/usr -DWITH_LIBBACKTRACE=1 && make install
RUN cd /usr/src/libs/sofia-sip && ./bootstrap.sh && ./configure CFLAGS="-g -ggdb" --with-pic --with-glib=no --without-doxygen --disable-stun --prefix=/usr && make -j`nproc --all` && make install
RUN cd /usr/src/libs/spandsp  && ./bootstrap.sh && ./configure CFLAGS="-g -ggdb" --with-pic --prefix=/usr && make -j`nproc --all` && make install
RUN cd /usr/src/libs/signalwire-c && PKG_CONFIG_PATH=/usr/lib/pkgconfig cmake . -DCMAKE_INSTALL_PREFIX=/usr && make install

# Enable modules
RUN sed -i 's|#formats/mod_shout|formats/mod_shout|' /usr/src/freeswitch/build/modules.conf.in

RUN cd /usr/src/freeswitch && ./bootstrap.sh -j
RUN cd /usr/src/freeswitch && ./configure
RUN cd /usr/src/freeswitch && make -j`nproc` && make install

# Cleanup the image
RUN apt-get clean
RUN rm -rf /usr/src/*

ENTRYPOINT ["/usr/local/docker-entrypoint.sh"]

启动脚本

docker-entrypoint.sh

#!/bin/bash
set -e

#echo "restart nginx"
/etc/init.d/nginx  start

echo "start freeswitch"
cd /usr/local/freeswitch/bin

exec ./freeswitch  -nonat -c

exec "$@"

构建镜像脚本

执行build.sh 构建过程时间会很久,如果没有网络加速环境,大概率是会失败的,建议找一个网络加速环境,一次失败就再支持一次(毕竟失败是成功他妈🧐),docker build 时不要加 -no-cache。

#!/bin/bash

docker build -t registry.cn-hangzhou.aliyuncs.com/voice9-x86/freeswitch-debian:1.10.10  .

image.png

启动freeswitch

docker-compose up -d

freeswitch控制台

./fs_cli.sh

image.png


GitHub: https://github.com/caoliang1918/contact-center

演示系统:

呼叫中心后台:https://dev.voice9.com/admin/ 账号密码: admin 12345678

坐席端:https://dev.voice9.com/agent/ 账号密码:1001@test 12345678

文档地址:https://www.yuque.com/voice9/aicall

目录
相关文章
|
4月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
793 108
kde
|
2月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
kde
772 4
|
4月前
|
运维 Devops 持续交付
揭秘 Docker 自动部署神器 Websoft9:热门开源软件一键部署
在企业IT建设中,软件部署常面临效率低、易出错等问题。通过Docker与自动化工具,可实现高效、标准化和可追溯的部署流程,提升企业应用交付效率,降低运维门槛,助力中小企业实现自动化部署。
275 5
揭秘 Docker 自动部署神器 Websoft9:热门开源软件一键部署
|
3月前
|
JavaScript 算法 前端开发
【Docker项目实战】使用Docker部署paopao-ce微社区
【Docker项目实战】使用Docker部署paopao-ce微社区
357 84
【Docker项目实战】使用Docker部署paopao-ce微社区
|
4月前
|
运维 Cloud Native 开发者
Docker:现代化应用开发与部署的神器
Docker:现代化应用开发与部署的神器
234 101
|
4月前
|
设计模式 Linux 开发工具
Docker部署会吗?
本段内容主要介绍了Docker常用命令、Linux基础指令及日志查看方法,还涉及SpringMVC的执行流程、设计模式与注解,适合用于面试中技术能力的展示。
141 0
|
2月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
116 5
|
3月前
|
存储 Docker Python
docker 部署 sftp
本文介绍SFTP服务的部署与配置,包括users.conf用户配置规则、Docker容器运行命令及上传目录权限说明,重点解析atmoz/sftp镜像的chroot机制与子目录映射,确保用户登录后正确访问/upload目录,并提供Python脚本实现文件上传示例。
229 13
docker 部署 sftp
|
3月前
|
运维 Linux 数据库
基于 Docker 部署 n8n 指南,新手一看就会
本教程详解如何通过 Docker 快速部署开源自动化工具 n8n,适合新手快速上手。内容涵盖官方部署步骤、常见难点及第三方一键部署方案,助你高效搭建自动化工作流平台。
1066 6