Docker Installation Issue

I am attempting to install Channels DVR on Docker, but it keeps restarting. The logs show the following: standard_init_linux.go:211: exec user process caused "exec format error". I can only get it installed with Docker run, but it constantly restarts. If I try to use a yaml file, it give the exec issue and will not install. I have tried with both the latest and tve packages without success.

Are you using a 64-bit docker host?

yes

exec format usually means the binary is for a different architecture. What CPU/OS is the docker host running on?

Ubuntu 20.04 / ARM (it is a Pi version 4)

What does uname -a say?

Linux ubuntu 5.4.0-1018-raspi #20-Ubuntu SMP Sun Sep 6 05:11:16 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux

Ah. I think you may need to run sudo rpi-update

No joy. Its ubuntu, not Raspbian.

I see. Please provide all the log messages printed when first setting up the container.

docker-compose up logs:

Creating channels-dvr ... done
Attaching to channels-dvr
channels-dvr | standard_init_linux.go:211: exec user process caused "exec format error"
channels-dvr exited with code 1
channels-dvr exited with code 1

The container logs shows only this:

{"log":"standard_init_linux.go:211: exec user process caused "exec format error"\n","stream":"stderr","time":"2020-09-23T14:39:00.002164583Z"}

Seems like our Docker is only Intel compatible.

I'd like to add ARM support but I don't know when it will be ready. Also it's not clear if the docker version can use hardware acceleration for transcoding.

understood. I went with a regular install for now.

Any updates on arm support?

I know it's been a wile this question came up but I just did my docker setup recently and my docker image is using hardware or at least it's turned on. Synology DS750+

Any updates on arm64/aarch64 support for the Docker image?

I've built an arm64 Docker image for my Raspberry Pi 4 with TVE support. Hardware transcoding seems to be in working order, the logs indicate it's using the h264_v4l2m2m encoder while watching a channel from my HDHR Prime in the browser. Running it on Ubuntu 20.04 server 64bit along with several other containers and the Pi doesn't break a sweat.

The build file and run script were based off of the official Channels DVR TVE image.

The image: https://hub.docker.com/r/ajvolin/channels-dvr
Repo with the build file and run script: https://github.com/ajvolin/channelsdvr-docker

1 Like

Thanks for this. My Pi4 is arriving later today, and I was going spend my afternoon putting Fedora on it, and building a container for Channels. You just saved me an extra 30 minutes of trial-and-error.

1 Like

Although there are no video* devices under Fedora's aarch64 image, I was able to successfully get your container up and running on a Raspberry Pi 4B, using UEFI to boot Fedora 33 aarch64.

For those curious:

podman network create \
  --macvlan eth0 \
  eth0-macvlan

podman pod create \
  --name media \
  --network eth0-macvlan \
  --hostname media \
  --mac-address dc:a6:32:XX:XX:XX

podman create \
  --name channels \
  --pod media \
  --tz America/Los_Angeles \
  --user $(id -u media):$(id -g media) \
  --umask 0002 \
  --restart on-failure:10 \
  --volume /srv/channels:/channels-dvr:Z \
  --volume /srv/dvr:/dvr:z \
  docker.io/ajvolin/channels-dvr:tve-arm64

podman pod start media

I realize this is old, but I installed the container and it only shows software as a transcode option in the GUI. Thoughts?