State of Docker for Mac given Apple's upcoming transition away from Intel CPUs?

amd64 and only uses x86

amd64 is actually just the 64 bit version of x86 and is sometimes also called x86_64. Usually when people say x86 they nowerdays also mean x86_64 because essentially every x86 processor sold in the last decade is a 64 bit processor. I think you mean ARM.

So that means that there is a chance that tests that work locally may not work the same in production on Heroku due to the different architectures?

It's not that there's a chance... Images you build FOR ARM and won't run ON x86 and vice versa with 100% certainty... Most stuff on most cloud providers runs on x86 and if you build an image for ARM it just won't run there. Without an emulation layer which basically translates the instructions between ISAs and which most of the times isn't perfect and certainly costs performance, an ARM chip won't understand x86 and a x86 chip won't understand ARM instructions.

Apple Silicon will have a different architecture, even if I use docker

A processor just has one instruction set architecture. It will always have that same ISA. Docker doesn't virtualize the hardware. The Java virtual machine does that for example but you can't really compare the JVM to Docker. A normal VM will allow you to run a program that uses Linux system calls on a Mac OS or Windows system. Docker on linux doesn't work even spin up a whole VM. All processes in docker containers run on the host linux kernel and are just configured in a way that makes it look as if it was running in a separate system to the process inside the container. If you run Docker Desktop you add another layer of virtualization by adding a VM between Docker and your Host OS but as i explained before a VM just allows you to call Linux syscalls inside VM but doesn't change the ISA.

/r/docker Thread Parent