tile38
tile38 copied to clipboard
Provide arm64 architecture in official Docker images
Is your feature request related to a problem? Please describe.
With the ARM-based Apple Silicon Macs becoming more and more common, it would be great if there was also a Docker image with arm64 architecture. If found the old ticket #180 which says there are no official ARM64 releases, even though Tile38 might work just fine. The current releases here on Github include arm and arm64 which is great.
Describe the solution you'd like
In addition to building and publishing Docker images with architecture linux/amd64, please also provide linux/arm64.
Describe alternatives you've considered
- building my own image for local development or
- not run Tile38 within Docker for development but use the homebrew-installed tile38
Some additional information
https://github.com/docker-library/official-images#architectures-other-than-amd64
Sorry for the delay on responding to this.
We have an official linux/arm64 release right now that is part of the standard point releases. But I don't have an M1 machine handy and my Docker skills are lacking.
I hope to spend a little time soon, to add a docker build script to the repo.
(. I may need a little help with this feature. 😬 .)
this issue just hit me when i upgraded to docker desktop v4.16.2 on apple/m1:
$ docker compose up t38
Error response from daemon: platform linux/arm64/v8 not supported
with docker-compose.yaml
t38:
image: tile38/tile38:latest
ports:
- 127.0.0.1:9851:9851
workaround:
$ docker run --platform linux/amd64 tile38/tile38:latest
didn't find how to get it to work with docker-compose yet...
Any update on this?
For a Go project probably the easiest thing would be to use something as goreleaser for the build and release process. Next to releasing binaries it can be used to build and release multi platform docker manifests. However this would change the current way you are building and releasing.
Alternatively you can use docker buildx
together with a multi-stage Dockerfile to build and release your multi platform docker manifest. That would move building your binaries (for docker) inside Docker in the first build-stage and then in the next stage build the releasable container. buildx
can take care of the cross building.
Finally you can create the multistage manifest manually (or add them to your scripts).
What would fit your workflow bests would you say? I'd be happy to help.
This is something that I would like to have but haven't had the time to address.
Right now the deployment process includes a few small manual steps to prepare a new version of Tile38, followed by a git push
that triggers GitHub actions to do some tests and push the new version to Docker.
Ideally this would stay the same but also automagically include arm64.
I will take a look at your workflow to see if I can contribute to it.