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 was fine, until Apple released their hyperfast M1 Macs last year, and switched over to their custom-built and very efficient ARM-based chips.

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: 

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!