It would be great if the
cimg/* images in Docker hub would be published for multiple architectures (amd64, arm64).
Several of our developers are using ARM64 machines and the images built on amd64 bases are not working properly.
Is this something that CircleCI would be keen to do?
Can you elaborate on what you’re trying to do?
The Convenience Images (
cimg/*) are all Linux amd64. This is because the Docker executor that runs them is only amd64. arm64 images simply wouldn’t run, thus we don’t build them.
If you are building images using the Docker executor, I assume you’re using remote Docker (
- setup_remote_docker)? If so, that’s different than these images. This feature also is amd64 only.
There are CircleCI Ideas that you can upvote for these feature requests though:
The best solution for today is to use the ARM Linux VM images we offer and build your Docker images directly in that environment. This will allow you to build ARM Docker images directly in an ARM environment.
I hope that helps.
Hi @FelicianoTech! Thanks for the thorough response.
In our pipeline we are executing visual regression tests with Jest and Puppeteer. In order to produce the screenshots for the visual regression tests, we run the stack in local in a container started from the same image we use in CircleCI (
cimg/node:16.13.1-browser). In this way, we can make sure we generate the screenshots in exactly the same environment as in the CI pipeline. This works OK when running the image in local on intel laptops. But when we try and do it on an M1 MacBook the process fails. The virtualisation layer doesn’t seem to be able to handle this, not sure why.
I thought that, if we have an arm64 image equivalent to the one we use in CircleCI this could work also on the M1s. I am conscious that the container would still be based on a different image, but was hoping the different architecture would not affect the screenshots.
An alternative, would be to save the “correct” screenshots as artifacts of the visual regression tests step in CircleCI, download them from there and add them to the repository as needed.
Thanks again, and let me know if you have further comments on this.