| 知乎专栏 |
目录
docker volume create --name freeswitch-sounds
docker pull safarov/freeswitch:latest
docker run --net=host --name freeswitch \
-e SOUND_RATES=8000:16000 \
-e SOUND_TYPES=music:en-us-callie \
-v freeswitch-sounds:/usr/share/freeswitch/sounds \
-v /etc/freeswitch/:/etc/freeswitch \
safarov/freeswitch
netkiller-devops Docker 编排工具
[root@netkiller ~]# pip install netkiller-devops
[root@netkiller ~]# cat freeswitch.py
#!/usr/bin/env python3
##################################################
# Home : https://www.netkiller.cn
# Author: Neo <netkiller@msn.com>
# Upgrade: 2026-02-09
# Docker freeswitch
##################################################
import sys
try:
sys.path.insert(0, ".")
from netkiller.docker import *
except ModuleNotFoundError as err:
print("pip install netkiller-devops, %s" % (err))
exit()
# -----------------------------------------------------------------------------------------------
development = Composes("development")
testing = Composes("testing")
production = Composes("production")
# -----------------------------------------------------------------------------------------------
volumes = Volumes("freeswitch-sounds")
freeswitch = Services("freeswitch")
freeswitch.container_name("freeswitch")
freeswitch.image("safarov/freeswitch:latest")
freeswitch.restart("unless-stopped")
freeswitch.environment({"SOUND_RATES": "8000:16000", "SOUND_TYPES": "music:en-us-callie"})
freeswitch.volumes(["freeswitch-sounds:/usr/share/freeswitch/sounds","/etc/freeswitch/:/etc/freeswitch"])
freeswitch.network_mode('host')
#freeswitch.ports(["5060:5060","5060:5060/udp","16384-32768:16384-32768/udp","5066:5066","7443:7443"])
# freeswitch.working_dir("/app")
development.services(freeswitch)
development.volumes(volumes)
# -----------------------------------------------------------------------------------------------
if __name__ == "__main__":
try:
docker = Docker()
docker.none()
# docker.env({'DOCKER_HOST':'ssh://root@192.168.30.13','COMPOSE_PROJECT_NAME':'experiment'})
# docker.sysctl({"vm.overcommit_memory": "1"})
docker.environment(development)
# docker.environment(testing)
# docker.environment(production)
docker.main()
except KeyboardInterrupt:
print("Crtl+C Pressed. Shutting down.")
安装用户管理工具
pip install freeswitch