
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Joe Black | <***> | https://github.com/joeblackwaslike
轻量级Freeswitch 1.6容器化镜像,专为Kubernetes环境设计。支持TLS和捕获服务器功能,缓存与数据库存储在ramfs上以获得最佳性能。基于自定义的Debian Linux (Jessie)版本构建,压缩后大小约为22MB,兼顾轻量化与功能性。
构建环境变量用于构建脚本中,用于调整版本号和设置构建阶段的其他选项。可通过同名构建参数覆盖其值。
该镜像包含大量自定义配置,允许轻松定制Freeswitch以满足自身需求,同时保持公共镜像的轻量化:
ERLANG_VERSION:默认值为19.2FREESWITCH_VERSION:默认值为1.6KAZOO_CONFIGS_BRANCH:默认值为masterFREESWITCH_INSTALL_MODS:默认值为commands,conference,console,dptools,dialplan-xml,enum,event-socket,flite,http-cache,local-stream,loopback,say-en,sndfile,sofia,tone-streamFREESWITCH_INSTALL_CODECS:默认值为amr,amrwb,g723-1,g729,h26x,ilbc,opus,shout,silk,siren,spandspFREESWITCH_INSTALL_LANGS:默认值为en,es,ruFREESWITCH_INSTALL_META:默认值为空FREESWITCH_INSTALL_DEBUG:默认值为falseFREESWITCH_LOAD_MODS:默认值为FREESWITCH_LOAD_MODULES:-g729,silk以下变量为大多数Dockerfile的标准变量,用于减少重复并使脚本在不同项目间可重用:
APP:freeswitchUSER:freeswitchHOME:/opt/freeswitch运行环境变量用于入口脚本中,用于渲染配置模板、执行流程控制等。可在继承基础Dockerfile时覆盖这些值,或在docker run时指定,或在Kubernetes清单的env数组中配置:
FREESWITCH_LOG_LEVEL:默认值为info,日志级别FREESWITCH_LOG_COLOR:默认值为true,是否启用彩色日志FREESWITCH_RTP_START_PORT:默认值为16384,RTP起始端口FREESWITCH_RTP_END_PORT:默认值为32768,RTP结束端口FREESWITCH_DISABLE_NAT_DETECTION:默认值为true,是否禁用NAT检测MOD_KAZOO_LISTEN_IP:默认值为0.0.0.0,Kazoo模块监听IPFREESWITCH_SEND_ALL_HEADERS:默认值为true,是否发送所有头部信息FREESWITCH_CAPTURE_SERVER:默认值为false,是否启用捕获服务器FREESWITCH_CAPTURE_IP:默认值为127.0.0.1,捕获服务器IPFREESWITCH_ENABLE_TLS:默认值为false,是否启用TLS[待办] 完善这些描述。
所有GitHub上的docker-*仓库均通过CI流水线推送到Docker Cloud/Hub。
该镜像可通过以下途径获取:
docker pull docker.xuanyuan.run/callforamerica/freeswitch运行命令示例:
bashdocker run -d \ --name freeswitch \ -h freeswitch.local \ -p "11000:10000" \ -p "11000:10000/udp" \ -p "16384-16484:16384-16484/udp" \ -p "8021:8021" \ -p "8031:8031" \ -e "FREESWITCH_DISABLE_NAT_DETECTION=false" \ -e "FREESWITCH_RTP_START_PORT=16384" \ -e "FREESWITCH_RTP_END_PORT=16484" \ -e "ERLANG_COOKIE=test-cookie" \ --cap-add IPC_LOCK \ --cap-add SYS_NICE \ --cap-add SYS_RESOURCE \ --cap-add NET_ADMIN \ --cap-add NET_RAW \ --cap-add NET_BROADCAST \ docker.xuanyuan.run/callforamerica/freeswitch
注意:请参考“运行环境”部分获取可用环境变量列表。
注意:生产环境中,可能需要在主机网络栈中运行容器。此时需移除上述端口映射,并添加--net=host参数。在Kubernetes环境中,若使用提供的清单文件,此配置已预先处理。
拉取镜像:
bashdocker-compose pull
启动应用及依赖:
bash# 前台启动 docker-compose up --abort-on-container-exit # 后台启动 docker-compose up -d
编辑kubernetes/<environment>目录下的清单文件,以反映特定环境和配置。
创建Erlang Cookie密钥:
bashkubectl create secret generic erlang-cookie --from-literal=erlang.cookie=$(LC_ALL=C tr -cd '[:alnum:]' < /dev/urandom | head -c 64)
创建Freeswitch凭据密钥:
bashkubectl create secret generic freeswitch-creds --from-literal=freeswitch.event-socket.password=$(sed $(perl -e "print int rand(99999)")"q;d" /usr/share/dict/words)
部署Freeswitch:
bashkubectl create -f kubernetes/<environment>
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 callforamerica/freeswitch 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: