docker-janus is a Debian 8 based docker image for Meetecho's Janus Gateway
All 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. Both latest and tklx 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 the docker-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 a make 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 the Dockerfile for the ARG arguments to override.
Example build with rabbitmq, paho-mqtt, boringssl enabled, and data-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 .