Dockerfile for running FreeSWITCH in a Docker container.
- Base image:
- Exposed ports: None
- Volumes: None
You should generally run the container with host networking. Something like:
docker run -d --net host --name freeswitch praekeltfoundation/freeswitch
If you want to use FreeSWITCH's CLI, you can use Docker's
exec command to connect to the running container:
docker exec -it freeswitch fs_cli
This is NOT a complete FreeSWITCH installation - the Docker image only contains the "meta-vanilla" packages as well as a couple of extra modules. FreeSWITCH is a very large software project with many submodules. We install only the features that we need. Still, this may be a useful starting point for anybody looking to run FreeSWITCH under Docker.
We install the following FreeSWITCH packages:
freeswitch-mod-shout(for playing audio from files)
It is not recommended that you use Docker's bridge networking mode for FreeSWITCH as some of the protocols (namely, SIP) make use of a very large number of ports and it is not feasible to forward all of these ports to the host. Instead, consider using Docker's host networking mode or, in Docker 1.9+, the virtual overlay networking mode.
For the most part we use the default "vanilla" configuration that FreeSWITCH installs in
/usr/share/freeswitch/conf/vanilla. However, we do override some of the configuration options. The changes are as follows:
- Disable console colorizing as this seems to break some logging systems.
mod_logfileas the container logs are consumed from stdout/stderr, not a file.
mod_h26xfor H.263/4 CODEC support.
- This file is renamed to prevent FreeSWITCH from setting up an example (and non-functional) SIP gateway.