unifios-utilities/podman-update
2023-03-23 05:58:24 -07:00
..
bin fix conficts 2021-08-26 01:39:03 -07:00
build Update Dockerfile 2023-03-23 05:58:24 -07:00
01-podman-update.sh moved to bash (#499) 2023-02-22 21:44:27 -08:00
README.md Updating Org 2022-06-24 08:16:09 -07:00

Podman Update

Features

  1. Podman 3.2.0 (w/ updated conmon, and runc)
  2. Persists through reboots and firmware updates
  3. Full Docker / Docker Compose compatibility!
$ docker-compose -H 10.0.0.1:2375 up
Starting minecraft_1 ... done
Attaching to minecraft_1
minecraft_1  | [init] Running as uid=1000 gid=1000 with /data as 'drwxrwxr-x 4 1000 1000 240 May 25 11:55 /data'
minecraft_1  | [init] Resolved version given LATEST into 1.16.5
minecraft_1  | [init] Resolving type given VANILLA
minecraft_1  | [init] server.properties already created, skipping
minecraft_1  | [init] Checking for JSON files.
minecraft_1  | [init] Setting initial memory to 1G and max to 1G
minecraft_1  | [init] Starting the Minecraft server...

Requirements

  1. You have successfully set up the on boot script described here
  2. 05-install-cni-plugins.sh installed

Customization

  • You can disable exposing the docker daemon by commenting out the podman service in [01-podman-update.sh](bin.OLD.DONT USE/01-podman-update.sh)

Podman Build Process

  • This is a custom-built binary by me. It was cross compiled on Ubuntu-20.04 in WSL2.
  • The Makefile needs tweaks. I have supplied the Makefile.patch. Apply it to a fresh podman checkout
  • You will need libseccomp-dev:arm64 package installed
  • You will need go > 1.12.1 installed
  • Setup Cross-Compiler
sudo apt-get install libc6-arm64-cross libc6-dev-arm64-cross binutils-aarch64-linux-gnu libncurses5-dev build-essential bison flex libssl-dev bc gcc-aarch64-linux-gnu
  • Compile
make CC="aarch64-linux-gnu-gcc" local-cross

Step

  1. Goto the Actions tab and get the latest Podman build and unzip it in your the root of your filesystem, something better is coming but for now that will have to do. You can write a script to automate it, i suggest lots of testing though!
  2. Verify Podman version
$ podman version
Version:      3.2.0-dev
API Version:  3.2.0-dev
Go Version:   go1.16.4
Git Commit:   78df4f6fb2e2a404ace69219a50652f4335b7ce1-dirty
Built:        Tue May 25 04:52:19 2021
OS/Arch:      linux/arm64

Docker Compose

There is no docker-compose binary to run on the UDM yet, so please use docker-compose from a remote system and specify to run on your UDM.

docker-compose -H 10.0.0.1:2375 up

You can also use any regular docker binary and do remote management as well

$ docker -H 10.0.0.1:2375 ps
CONTAINER ID   IMAGE                                  COMMAND                  CREATED         STATUS       PORTS     NAMES
608a24fd121e   localhost/unifi-os:latest              "/sbin/init"             8 weeks ago     Up 8 days              unifi-os