Tom Faulkner

Odroid and Docker

Published on January 18, 2020 - New Year, New Blog post

While looking to order a Single Board Computer (SBC) to use as a pfSense router I came across the Odroid-HC2. It's a powerful, but somewhat dated, SBC that comes built-in to a drive bay sort of tray.

For now I am just playing with it, trying out OpenMediaVault and setting up NextCloud. The latter is where I ran into difficulties. NextCloud, at least as I had it configured when I set it up in a compose file to take a look at it, uses MariaDB. The official Maria docker images include an image for Arm8, but not for Arm7, Arm64, or Armhf.

I found a few rather dated Dockerfiles, that weren't being pushed to DockerHub any longer. One that looked promising required cross-building, I believe necessarily on amd64. Not wanting to build it, push the build to DockerHub, then pull it back down, on a friend's suggestion, and the desire to learn something new, I decided to go with a local Docker Registry. My notes as to how this is setup is as follows. (I also have it in git, because who wants to do this twice?)


Registry Server (amd64) Side

git clone [email protected]:riotkit-org/arm-mariadb.git


version: "3"
    image: registry
      - 5000:5000
      - registry_vol:/var/lib/registry
    restart: always


#!/bin/env bash
cd arm-mariadb 
docker build . -f ./armhf.Dockerfile -t arm-maria:latest
docker image tag arm-maria
docker push
echo "Build complete."

The above assumes of course that the arm-mariadb is cloned into this directory. (I made it a submodule of my private compose git repository)

Don't forget to chmod +x the shell script.

Start the Registry and Run the Build

docker up -d registry


The server side is complete.

Odroid Side

I didn't take the additional steps to secure my one container local registry. It's in my house, and I had more interesting things to do next. Please, if you follow these instructions, consider the risk involved if you publish container images to this server. Don't publish private code to an insecure server, and don't trust any images published to an insecure internet accessible server.


  "insecure-registries" : [""]

Trying it out.

docker pull

And like magic it works!

Odroid-side docker-compose.yaml

version: "2"
    image: nextcloud
     - 8080:80
     - nextcloud_db
      - nextcloud:/var/www/html
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
     - nextcloud_db:/var/lib/mysql
      - MYSQL_ROOT_PASSWORD=32gj8932garsedarsdards23g312
      - MYSQL_PASSWORD=huydsrwqade,i233289ra8232
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

I hope someone finds this helpful. I didn't publish to DockerHub, but if there is a need I would be willing to if someone contacts me about it.

If you like it, share it!
(Shareblock privacy thoughts)