/docker-icecast

Icecast implemented in Docker

Primary LanguageDockerfileBSD 2-Clause "Simplified" LicenseBSD-2-Clause

docker-icecast

Icecast implemented in Docker

Synopsis

Docker-icecast implements Icecast V2 in a lightweight docker container. The Alpine Linux icecast package is used. Arguments are used to build an environment substitution configuration file. Each run replaces environment variables in the built icecastenv.xml file and the process is run in a chroot environment.

Quickstart

With the dockerfile in an empty directory and run the following command.

docker build -t mattrock/icecast .
docker run -p 8000:8000

A /data volume will be created and all web and admin templates will be copied to that

Build occurs in two stages. First, a virtual python3 image and xml.etree package is used to build an icecastenv.xml file from scratch. Build arguments are used to populate Icecast's limits. Environment variable names are substituted for ENV variables substituted during run.

ARG queuesize=524288
ARG clienttimeout=30
ARG headertimeout=15
ARG sourcetimeout=10
ARG burstonconnect=1
ARG burstsize=65535

Override any argument on build from the command line to set the parameter in the icecastenv.xml file.

docker build \
--build-arg clienttimeout=60 \
--build-arg sourcetimeout=15 \
-p 8000:8000 .

After