This is SIPWise rtpengine (previously: rtpproxy-ng, and before that: mediaproxy-ng) properly dockerified as a first-class citizen under the upstream project's preferred linux variant.
Parts of this project were borrowed in part from Binan/rtpengine-docker
Dockerfile*properly builds a first-class rtpengine runtime from source
docker-compose upfor local iteration convenience.
README.mdis the file you are reading right now.
docker-compose.ymlis a v2 config example, with some pre-defined defaults and a list of environment variables.
rtpengine/submodule tree that is currently pointing at the master branch which just recently had PR #77 applied.
run.shscript converts these environment variables into rtpengine daemon command-line options.
This repository assumes that the resultant docker container will be run as privileged with host network stack and will be responsible for building and running the kernel module as well as the iptables rules.
Build and Run
If you are running an Ubuntu, Debian, Centos, or Fedora docker host, you should be able to
docker-compose up and it should just work.
If you are running any other linux flavor as your docker host, this repository is not going to work for you as-is.
Why? There are two docker phases to be concerned with here.
- "build" time includes the
Dockerfileand whatever is included in the docker image
- "run" time includes the build image above, and the
run.shscript that is included inside that image.
Dockerfile and the
run.sh script will attempt to build a DKMS kernel module for rtpengine based on
At build time
uname -r is at "build" time, the kernel version headers and kernel module for whatever docker host was used to build this image will try and use that version.
FROM line of the
Dockerfile in this project is
centos7, which means that any build host that is not also Centos7 will silently skip including that as part of the docker build (see the "
|| true" in the
Dockerfile for that step).
All this is really doing is pre-building a kernel module for you to use at docker run time. This is a time-saver, but is not necessary.
At run time
Regardless of the linux docker host flavor you build this on, you should still be able to run this on any same Ubuntu or Debian flavor derivative host version, and it should properly build the DKMS kernel before loading it and running the rtpengine daemon. This does take a little time.
run.sh script assume Ubuntu/Debian tooling, this will not work for any other linux docker host flavor.