This month’s question, which we’ve been getting a lot, is: How do I run a containerized setup of your software on my new Apple Silicon-based Mac?
Well, first off: you don’t. Not for production purposes, anyway. We build our software for Windows and a variety of Linux distributions only.
For local tests, though, or for showing your manager how cool our software is, spinning up Docker to run our software on a Mac is fine.
That is, it
Problem was, we didn’t make an ARM-based build for Alpine, the lightweight Linux distribution upon which we base our publicly available Docker images. For customers wishing to spin up a containerized setup of our software on M‑series Macs, it meant either:
- suboptimal performance and, in some cases, the need for a workaround to run our X86-based containers on ARM-based Macs; or:
- having to build a Docker image based on a Linux distribution like Amazon Linux 2, for which we offered an ARM-based build since June last year.
This all changes with our new GA release, which ships today and includes an ARM-based build for Alpine 3.16.
Simultaneously, we’ve improved the continuous deployment pipeline we use for creating our Docker images and containerized demos (which was the topic of an earlier blog) in order to ensure our publicly available Docker images are multi-arch compatible — meaning you spin them up using the same command, regardless of your host being ARM- or X86-based.
To make this happen, we build an ARM-based container alongside our X86 variety (both in our Kubernetes cluster, using kaniko), and then use a tool called manifest-tool to “glue” them together and make them available on the same location of our internal Docker registry:
manifest-tool push from-args --platforms linux/arm64,linux/amd64 --template registry.internal.unified-streaming.com/operations/base-images/unified -origin/stable/ARCH:1.11.17 --target registry.internal.unified-streaming.com/operations/base-images/unified -origin/stable:1.11.17 Digest: sha256:2440fc3d50d538512d209aa1fb820303c1b1a7c400b4f0192a5f79d3df1020a b 685
After which we use Crane to copy the result to the publicly available location on our Docker Hub repository:
crane copy registry.internal.unified-streaming.com/operations/base-images/unified -origin/stable:1.11.17 docker.io/unifiedstreaming/origin:1.11.17
So now — assuming you have Docker installed and a license key available — you can simply run the following to spin up a containerized Unified Origin. And it doesn’t matter whether your host is ARM or X86-based (for more in-depth instructions, please refer to the instruction in our documentation):
export UspLicenseKey=<your_license_key> docker run \ -e UspLicenseKey \ -v ${PWD}:/var/www/unified-origin \ -p 80:80 unifiedstreaming/origin:latest
Or revisit our VOD2Live demo blog to run your own live stream from VOD content.
And if you want to know what other things we have worked on for our new GA, please take a look at the release notes.
Thanks for reading, and stay tuned for a new customer support question next month!