$ docker-compose up -d
$ open http://localhost/demos.html
docker-janus
is a Debian 8 based docker image for Meetecho's Janus GatewayAll the janus docker builds I have seen in hub.docker.com were all ubuntu based and/or of some redhat flavor. I successfully build janus in debian 7 and 8 before, so I thought it would be a good way to practice docker best practices and provide a debian based image at the same time.
For the automated build go to hub.docker.com
You can use this image directly from hub.docker.com by issuing the following docker commands:
docker pull mcroth/docker-janus:latest
UPDATE: Added a new branch with
tklx/base
as the build image which drastically reduces the docker image size. Bothlatest
andtklx
tags are available from the hub.Many thanks for meetecho for providing us Janus Gateway!
I have tried to build the image with docker best practices at hand. Should there be anything of note you notices, please do not hesitate to leave a comment!
root@mcroth:~/sandbox# git clone https://github.com/krull/docker-janus.git Cloning into 'docker-janus'... remote: Counting objects: 69, done. remote: Compressing objects: 100% (53/53), done. remote: Total 69 (delta 19), reused 59 (delta 13), pack-reused 0 Unpacking objects: 100% (69/69), done. Checking connectivity... done. root@mcroth:~/sandbox# cd docker-janus/ root@mcroth:~/sandbox/docker-janus# docker-compose up -d Creating network "dockerjanus_front-tier" with driver "bridge" Creating network "dockerjanus_back-tier" with driver "bridge" Pulling janus-gateway (mcroth/docker-janus:latest)... latest: Pulling from mcroth/docker-janus 43c265008fae: Pull complete 9ee7f339f682: Pull complete Digest: sha256:2ad4234b7255b52150d06ac231edff635102fa47c90f714b66ae37885f9f64d3 Status: Downloaded newer image for mcroth/docker-janus:latest Creating janus-gateway root@mcroth:~/sandbox/docker-janus# docker-compose ps Name Command State Ports --------------------------------------------------------------------------------------------- janus-gateway /opt/janus/bin/janus Up 0.0.0.0:8088->8088/tcp, 0.0.0.0:8188->8188/tcp root@mcroth:~/sandbox/docker-janus# docker images REPOSITORY TAG IMAGE ID CREATED SIZE mcroth/docker-janus latest 1dd697edcb76 23 minutes ago 232.9 MB root@mcroth:~/sandbox/docker-janus#
Visiting
http://localhost:8088/janus/info
in your browser should provide you with the build info of janus in JSON format.A full set of default janus config files are in
./janus
folder, which is referenced as a volume in thedocker-compose.yml
file for docker-compose to use.
janus-gateway
is built with the following configured options disabled, as I do not have the need for them to be enabled by default:./configure --prefix=/opt/janus --enable-post-processing --disable-docs --disable-boringssl --disable-mqtt --disable-rabbitmq
There is a
Makefile
, with some directives on building janus. Have a look at that file and check the options. Issuing amake
will run the default build with the options set below.DataChannels support: yes BoringSSL (no OpenSSL): no Recordings post-processor: yes TURN REST API client: yes Doxygen documentation: no Transports: REST (HTTP/HTTPS): yes WebSockets: yes (new API) RabbitMQ: no MQTT: no Unix Sockets: yes Plugins: Echo Test: yes Streaming: yes Video Call: yes SIP Gateway: yes Audio Bridge: yes Video Room: yes Voice Mail: yes Record&Play: yes Text Room: yes
--build-arg
provides away to override some build runtime arguments. Have a look at theDockerfile
for theARG
arguments to override.Example build with
rabbitmq
,paho-mqtt
,boringssl
enabled, anddata-channels
disabled:root@mcroth:~/sandbox/docker-janus# docker build --build-arg JANUS_WITH_BORINGSSL=1 --build-arg JANUS_WITH_PAHOMQTT=1 --build-arg JANUS_WITH_RABBITMQ=1 --build-arg JANUS_WITH_DATACHANNELS=0 -t mcroth/docker-janus:latest .