Appendix A – dockerfile_zixi_broadcaster.txt
Centos Docker Image
# Get CentOS 7 Docker image
FROM centos:7
# Variables EDIT ME WITH PROPER VERSION
ENV zixiversion 16.4.44543
# Copy Zixi installer to new image and extract files
COPY zixi_broadcaster-${zixiversion}.linux64.tar.xz .
RUN tar -xvf zixi_broadcaster-${zixiversion}.linux64.tar.xz
# Copy files to proper folder
RUN cp /zixi_broadcaster-linux64/scripts/centos7/* /zixi_broadcaster-linux64/
# Create link to executable with no version for ENTRYPOINT command
RUN ln -s /zixi_broadcaster-linux64/zixi_broadcaster-${zixiversion} /zixi_broadcaster-linux64/zixi_broadcaster
# Disable firewall
RUN systemctl mask firewalld
# Install/uninstall necessary Linux packages
RUN yum update -y
RUN yum install -y net-tools net-snmp-utils iproute ethtool ntp initscripts openssh openssh-clients openssh-server
# Informs Docker that the container listens on the specified ports
# These are relevant ports for Broadcaster but some may not be necessary depending on use case
# Ports that will be used need to published upon running the image for bridged mode
# Some other ports may need to be added for RTP/UDP streams.
# Web management UI, HTTP protocol
EXPOSE 4444/TCP
# Feeder push to Broadcaster, Zixi protocol
EXPOSE 2088/UDP
# Feeder push to Broadcaster, Zixi protocol with DTLS
EXPOSE 7088/UDP
# Receiver pull from Broadcaster, Zixi protocol
EXPOSE 2077/UDP
# Receiver pull from Broadcaster, Zixi protocol with DTLS
EXPOSE 7077/UDP
# Encoder push to Broadcaster, RTMP protocol
EXPOSE 1935/TCP
# HTTP streaming protocol - HLS or DASH when Broadcaster is origin server
EXPOSE 7777/TCP
# Preinstall a config file setting logs to be stored at zixi_broadcaster-linux64/logs
# Other settings for default behavior could be added to the config file as well
COPY broadcaster-config-template.xml zixi_broadcaster-linux64/broadcaster-config.xml
# Create logs folder
WORKDIR /zixi_broadcaster-linux64/logs
# Set final working directory
WORKDIR /zixi_broadcaster-linux64
# Set the executable to start when the container is run
ENTRYPOINT ["./zixi_broadcaster", "--no-daemon"]
Alma 9 Docker Image
# Get Alma 9 Docker image
FROM almalinux:9.4
# Variables EDIT ME WITH PROPER VERSION
ENV zixiversion 17.6.45597
# Disable firewall
RUN systemctl mask firewalld
# Install/uninstall necessary Linux packages
RUN dnf update -y
RUN dnf install -y dnf-utils net-tools wget tar chrony telnet traceroute initscripts numactl ipcalc xz dmidecode iproute pciutils which
# net-snmp net-snmp-utils
# Copy Zixi installer to new image and extract files
COPY zixi_broadcaster-${zixiversion}.linux64.tar.xz .
RUN tar -xvf zixi_broadcaster-${zixiversion}.linux64.tar.xz
# Copy files to proper folder
RUN cp /zixi_broadcaster-linux64/scripts/centos7/* /zixi_broadcaster-linux64/
# Create link to executable with no version for ENTRYPOINT command
RUN ln -s /zixi_broadcaster-linux64/zixi_broadcaster-${zixiversion} /zixi_broadcaster-linux64/zixi_broadcaster
RUN ln -s /etc/chrony.conf /etc/ntp.conf
# Informs Docker that the container listens on the specified ports
# These are relevant ports for Broadcaster but some may not be necessary depending on use case
# Ports that will be used need to published upon running the image for bridged mode
# Some other ports may need to be added for RTP/UDP streams.
# Web management UI, HTTP protocol
EXPOSE 4444/TCP
# Feeder push to Broadcaster, Zixi protocol
EXPOSE 2088/UDP
# Feeder push to Broadcaster, Zixi protocol with DTLS
EXPOSE 7088/UDP
# Receiver pull from Broadcaster, Zixi protocol
EXPOSE 2077/UDP
# Receiver pull from Broadcaster, Zixi protocol with DTLS
EXPOSE 7077/UDP
# Encoder push to Broadcaster, RTMP protocol
EXPOSE 1935/TCP
# HTTP streaming protocol - HLS or DASH when Broadcaster is origin server
EXPOSE 7777/TCP
# Preinstall a config file setting logs to be stored at zixi_broadcaster-linux64/logs
# Other settings for default behavior could be added to the config file as well
COPY broadcaster-config-template.xml zixi_broadcaster-linux64/broadcaster-config.xml
# Create logs folder
WORKDIR /zixi_broadcaster-linux64/logs
# Set final working directory
WORKDIR /zixi_broadcaster-linux64
# Set the executable to start when the container is run
ENTRYPOINT ["./zixi_broadcaster", "--no-daemon"]