calcom / docker

The Docker configuration for Cal.com is an effort powered by people within the community. Cal.com, Inc. does not provide official support for Docker, but we will accept fixes and documentation. Use at your own risk.
MIT License
619 stars 323 forks source link

ARM64 Image is needed. #358

Open kaumudpa opened 2 months ago

kaumudpa commented 2 months ago

Since the dawn of AWS ARM processors - VM's are providing much more realibility and value for money than X86 processors.

The current build images does not support ARM64 - We need to find a way to push both the images on Dockerhub.

kaumudpa commented 2 months ago

I have created an ARM64 Image and pushed it to Dockerhub - kaumudpa/calcom

gempain commented 1 week ago

@kaumudpa how did you get the image to build ? I'm trying on an M1 mack and so far no luck.

jshimko commented 1 week ago

This typically just needs the platforms config in the Github Action build/push step to include linux/arm64.

- platforms: linux/amd64
+ platforms: linux/amd64,linux/arm64

See platforms config options in the build action docs. https://github.com/docker/build-push-action

And the platforms supported by Docker Buildx. https://docs.docker.com/reference/cli/docker/buildx/build/#platform

Another two options are you can 1) build the image on your machine using the instructions in the readme, or 2) you can override your machine from trying to pull an ARM image by adding that same platform flag to the docker-compose.yaml in this repo (except in reverse of the above suggestion). You can do that by adding the platform config option to the calcom block (except set it to linux/amd64 instead) and that will tell your machine pull the non-ARM build that this repo builds/pushes. Performance won't be as good on your machine, but this is just a local dev testing thing anyway.

# docker-compose.yaml

  calcom:
    image: calcom/cal.com:4.2.3
    platform: linux/amd64  # tells it to pull the non-ARM build built by this repo
   ...

I personally prefer to just build the image on my machine so it's using the native CPU. You really only have to do it once every time a new release is pushed. Or... someone could just put platforms: linux/amd64,linux/arm64 in the GH action and everybody would get what they need.