Using the Arm execution environment
You can access the Arm execution environment for a job by using the machine executor, specifying a Linux virtual machine image that includes arm resources, and then specifying an Arm resource class.
# .circleci/config.yml
jobs:
my-job:
machine:
image: ubuntu-2004:202101-01
resource_class: arm.medium
steps:
- run: uname -a
- run: echo "Hello, Arm!"
# .circleci/config.yml
jobs:
my-job:
machine:
image: arm-default
resource_class: arm.medium
steps:
- run: uname -a
- run: echo "Hello, Arm!"
Available resource classes
The following Arm resources are available part of the machine
executor:
Class | vCPUs | RAM | Disk Size |
---|---|---|---|
arm.medium (default) | 2 | 8GB | 100 GB |
arm.large | 4 | 16GB | 100 GB |
arm.xlarge | 8 | 32GB | 100 GB |
arm.2xlarge | 16 | 64GB | 100 GB |
For pricing and plans information, see the resource class pricing overview.
Images with Arm support
Arm resources are accessible by using the machine executor when using one of the following images:
-
ubuntu-2004:current
- most recent, recommended for all users ubuntu-2004:2022.04.1
ubuntu-2004:202201-02
ubuntu-2004:202201-01
ubuntu-2004:202111-02
ubuntu-2004:202111-01
ubuntu-2004:202107-01
ubuntu-2004:202104-01
ubuntu-2004:202101-01
-
ubuntu-2004:202011-01
- deprecated as of Feb 3, 2021
For a full list of machine executor images, see the CircleCI Developer Hub. And for announcements about image updates, see CircleCI Discuss.
Limitations
- Some orbs that include an executable may not be compatible with Arm at this time. If you run into issues with orbs on Arm, please open an issue.
- We currently do not provide support for 32-bit Arm architectures. Only 64-bit
arm64
architectures are supported at this time. - There may be up to 2 minutes of spin-up time before your job actually starts running. This time will decrease as more customers start using Arm resources.
- If there is software you require that is not available in the image, please open an issue to let us know.
- In server 3.x, Arm resources are only available when using the EC2 provider for VM service. This is because there are no Arm instances available in GCP.
- CircleCI does not currently support ARM with our Docker executor. If you would like to follow updates on this functionality, please refer to the following Canny post: Support ARM resource class on Docker executor.
M1 Mac Support
Docker images built on M1 Macs, are by default, not compatible with the CircleCI standard platform. The spin up environment
job in your pipelines will give you a green tic, but you will see the following message in the response:
WARNING: docker image ghcr.io/{your_username}/runner-test:latest targets wrong architecture (found arm64 but need [amd64 i386 386])
If you build an image on an M1 you need to specify docker build --platform linux/amd64
as the default builds arm64
.
Learn More
Take the Arm course with CircleCI Academy to learn more about using Arm resources and associated use cases.
Help make this document better
This guide, as well as the rest of our docs, are open source and available on GitHub. We welcome your contributions.
- Suggest an edit to this page (please read the contributing guide first).
- To report a problem in the documentation, or to submit feedback and comments, please open an issue on GitHub.
- CircleCI is always seeking ways to improve your experience with our platform. If you would like to share feedback, please join our research community.
Need support?
Our support engineers are available to help with service issues, billing, or account related questions, and can help troubleshoot build configurations. Contact our support engineers by opening a ticket.
You can also visit our support site to find support articles, community forums, and training resources.
CircleCI Documentation by CircleCI is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.