metacall / core

MetaCall: The ultimate polyglot programming experience.
https://metacall.io
Apache License 2.0
1.58k stars 163 forks source link

Docker Multi Architecture Images #485

Open viferga opened 9 months ago

viferga commented 9 months ago

🚀 Feature

For fully implementing this feature for all architectures, including MacOS M1 etc.. we would need to build docker images for multiple architectures (and maybe multiple OS if possible, although for now, Debian should be enough).

Here's the CI that should be modified: https://github.com/metacall/core/blob/380a4a9fd0fcff9b08ef5650489341e12f91ef3a/.github/workflows/docker-hub.yml#L40

Alpine is not fully supported yet. Debian should be enough for now (bookworm and trixie).

Here's a full tutorial about how to do it with QEMU: https://docs.docker.com/build/ci/github-actions/multi-platform/

ashu8912 commented 9 months ago

Hello @viferga I would like to work on this

viferga commented 3 months ago

I made a base version for this, it can be extended further: https://github.com/metacall/core/blob/develop/.github/workflows/docker-hub-platform.yml

viferga commented 3 weeks ago

We should review the docker-hub-platform.yml, push to the core all the images with different tags and platforms (this includes 4 images for each platform), and then it will be interesting to not just build the image and push to docker but also run the tests in multiplatform environment.

Also adding more architectures would be interesting, here's the complete list:

      "linux/amd64",
      "linux/arm64",
      "linux/riscv64",
      "linux/ppc64le",
      "linux/s390x",
      "linux/386",
      "linux/mips64le",
      "linux/mips64",
      "linux/arm/v7",
      "linux/arm/v6"