Arm64v8 docker image available?

Hi there,
first of all since this is my first post: Thx for this nice piece of software (y).
I’m using the server via docker-compose using the postgres setup. That works out of the box and like charm on linux/x86.
Now I want to install on my rpi-mini-cloud but don’t get that to work. For postgres no problem. There is armv64v8/postgres docker image available, so this works.
In a perfect world I woud find a arm64v8 nakama-image somewhere, is there one?
Well, at least I didn’t find one. Creating one on my own didn’t work out as well.

So I downloaded the linux-arm64 release-download. This works when I use the steps pointed out in the docker-compose-file…But I would like a docker-image so I can install it in my mini arm64-kubernetes-cluster…

So here again the question: is there a nakama arm64 docker-image somewhere?


Edit: Thinking about that, I guess I can easily write a docker-image on my own. In the end all you need to do in the Docker-Image is to wget the release from github, unzip, migrate and start…yes?

This could be a useful addition. Could you open a GitHub issue (or even better a PR!) so we can track this task?

In the meantime, I’d also recommend your suggested workaround :slight_smile:

As you noticed we publish arm64 builds on the releases page but not as a docker image. I’d expect if you want to run on a Raspberry Pi you’d want to do it without the overhead of Docker.

If you do want to try it after all you can build a docker image yourself, the Dockerfile for the official image is open-source so you can easily use that as a foundation.

Hehe,…well I have an arm-based kubernetes cluster running with a collection of different armv7/arm64v8 cpus (odroid c2,rpi3,orangepi,…). Obviously it is just a fun project and nothing for production but fun to work with and postgres and nakama would be nice to fit in :wink: I’m actually still a rookie in this field…

Yes, thx. I already tried this. But got some errors that ld was not found,…and some strange errors when I start building:
Those seem not to effect the build process…still strange
[Sometime later]
I actually got a Dockerimage created, but had to set ‘cgo_enabled=0’ not 100% why this made the job and why ‘ld’ wasn’t found with cgo_enabled=1. I’m completely new to go

Now, I actually got also a docker-compose-postgres running for arm64v8. Waiting for the postgres-server to be fully started didn’t work, nakama started too early and I added hackily a ‘sleep 15’…I guess this might only be necessary on first postgres startup…

I will test this a bit and think about a PR today or tomorrow. for a sneekpeek:

EDIT: If arm64 stuff should be in the git-repo at all?

Ok,…I made a PR, maybe too early. Connecting from nakama-cpp-client (x64) to the arm64-server ends in this error on authentication (no matter if using authenticateDevice or authenticateEmail):

message: mime: invalid media parameter

Any clue what the problem could be?

The release-version works as expected so I guess something went wrong in the docker-image creation. :expressionless:
I remove the PR again

Ok,…it seems that the problem is that I build from master. Once I used version2.6.0 everything works as expected.

docker build "$PWD" --build-arg commit="b28f8d9" --build-arg version=v2.6.0 -t heroiclabs/nakama:2.6.0-arm64v8 -f Dockerfile-arm64v8
1 Like

There are unreleased protocol changes on master that the C++ client isn’t yet updated for, so that’s probably the cause of the error.

Thanks for the PR, we’ll have a look and continue the discussion there! :+1:

1 Like

I’m interested too in an ARM image (for plugin-builder and nakama).
You could easily build automatically ARM/AMD using Github action to Dockerhub / Github registry, example: