Deploying Zixi Products Using ...
How to Deploy Zixi Broadcaster...
Appendix A - dockerfile_zixi_broadcaster.txt
1min
Bash
1# Get Ubuntu 20.04 Docker image
2FROM arm64v8/ubuntu:focal
3# Below required for Videon Docker environment
4RUN groupadd -g 3003 aid_inet && usermod -G nogroup -g aid_inet _apt
5RUN groupadd -g 3004 net_raw && usermod -G net_raw root
6ARG DEBIAN_FRONTEND=noninteractive
7ENV TZ=America/Los_Angeles
8# Variables EDIT ME WITH PROPER VERSION
9ENV zixiversion 16.3.44466
10# Install necessary Linux packages
11RUN apt update --assume-yes
12# minimal required packages below
13RUN apt-get --assume-yes install tzdata ntp ethtool policycoreutils snmp wireless-tools net-tools dmidecode openssh-client iproute2 ipcalc xz-utils
14# tzdata for time zone definitions
15# ntp for ntp command
16# ethtool for /etc/network/interfaces file
17# policycoreutils for restorecon command
18# snmp for snmpget command
19# wireless-tools for iwconfig command
20# net-tools for ifconfig command
21# dmidecode for dmidecode command
22# openssh-client for ssh commmand
23# iproute2 for ip command
24# ipcalc for ipcalc command
25#RUN apt-get --assume-yes install tzdata policycoreutils inetutils-ping wireless-tools iptables ipcalc isc-dhcp-client dmidecode wakeonlan apt-utils net-tools snmp iproute2 ethtool ntp util-linux sysvinit-utils openssh-client openssh-server vim
26# following packages not be available to use in the Ubuntu 20.04 Docker env
27# network-manager rsyslog snmpd systemctl
28RUN service ntp start
29# Ubuntu Focal Fossa comes with the folder, but without the file.
30RUN touch /etc/network/interfaces
31RUN restorecon -v /etc/network/interfaces
32# Copy Zixi installer to new image and extract files
33COPY zixi_broadcaster-${zixiversion}.raspberry.tar.xz .
34RUN tar xvf zixi_broadcaster-${zixiversion}.raspberry.tar.xz
35# Copy files to proper folder - no systemd in Docker so need /debian/ scripts not /debian8/
36RUN cp /zixi_broadcaster-raspberry/scripts/debian/* /zixi_broadcaster-raspberry/
37# Create link to executable with no version for ENTRYPOINT command
38RUN ln -s /zixi_broadcaster-raspberry/zixi_broadcaster-${zixiversion} /zixi_broadcaster-raspberry/zixi_broadcaster
39# Informs Docker that the container listens on the specified ports
40# These are relevant ports for Broadcaster but some may not be necessary depending on use case
41# Ports that will be used need to published upon running the image for bridged mode
42# Some other ports may need to be added for RTP/UDP streams.
43# Web management UI, HTTP protocol
44EXPOSE 4444/TCP
45# Feeder push to Broadcaster, Zixi protocol
46EXPOSE 2088/UDP
47# Feeder push to Broadcaster, Zixi protocol with DTLS
48EXPOSE 7088/UDP
49# Receiver pull from Broadcaster, Zixi protocol
50EXPOSE 2077/UDP
51# Receiver pull from Broadcaster, Zixi protocol with DTLS
52EXPOSE 7077/UDP
53# Encoder push to Broadcaster, RTMP protocol
54EXPOSE 1935/TCP
55# HTTP streaming protocol - HLS or DASH when Broadcaster is origin server
56EXPOSE 7777/TCP
57# Create logs folder
58RUN mkdir /zixi_broadcaster-raspberry/logs
59# Create configs folder
60RUN mkdir /zixi_broadcaster-raspberry/configs
61# Preinstall a config file setting logs to be stored at zixi_broadcaster-raspberry/logs
62# Put it in the configs folders and then symlink it to the location the Broadcaster is expecting
63# Other settings for default behavior could be added to the config file as well
64RUN ln -s /zixi_broadcaster-raspberry/configs/broadcaster-config.xml /zixi_broadcaster-raspberry
65# Create the license file in the configs folder and symlink to the location the Broadcaster is expecting
66RUN ln -s /zixi_broadcaster-raspberry/configs/broadcaster.lic /zixi_broadcaster-raspberry
67# Create the info file in the configs folder and symlink to the location the Broadcaster is expecting
68RUN ln -s /zixi_broadcaster-raspberry/configs/broadcaster-info.xml /zixi_broadcaster-raspberry
69# Set final working directory
70WORKDIR /zixi_broadcaster-raspberry
71# Set the executable to start when the container is run
72ENTRYPOINT ["./zixi_broadcaster", "--no-daemon"]
73
Updated 23 Dec 2024

Did this page help you?