Troubleshooting Job Completes After "Spin up Environment" for Arm-Based Docker Images

Problem

When using Arm-based Docker images (such as images for Raspberry Pi) with the Docker executor, your job completes immediately after the "Spin up Environment" step without running any of your build steps. This occurs because Arm images require Arm resources, but the Docker executor defaults to x86_64 architecture.

Solutions

Specify an Arm Resource Class

To run Arm-based Docker images, specify an Arm resource class in your job configuration:

jobs:
  build:
    docker:
      - image: your-arm-image:latest
    resource_class: arm.medium
    steps:
      - checkout
      - run: echo "Running on Arm!"

Available Arm resource classes for Docker executor:

  • arm.medium - 2 vCPU, 8GB RAM
  • arm.large - 4 vCPU, 16GB RAM

Verify Your Image Supports Arm

Check that your Docker image is built for Arm architecture (arm64). Not all images support Arm. You can verify support on Docker Hub by checking the OS/ARCH tags for your image.

CircleCI convenience images that support Arm include both linux/amd64 and linux/arm64 architectures.

Outcome

After adding the appropriate Arm resource class to your configuration, your job will run on Arm infrastructure and execute all build steps successfully. The "Spin up Environment" step will be followed by your checkout and other configured steps.

Additional Notes

  • Arm resource classes require Arm-compatible Docker images
  • The default Docker executor uses x86_64 architecture
  • Different architectures use different binaries and may have compatibility requirements
  • Resource class access depends on your CircleCI plan

Additional Resources

Was this article helpful?
5 out of 9 found this helpful

Comments

0 comments

Article is closed for comments.