Use Docker containers on ARM architecture
Codefresh is offering initial support for building Docker images for the ARM architecture. ARM support is only available to Enterprise customers.
Enabling ARM support
Due to unforeseen circumstances, we are currently unable to support ARM builds on our SaaS infrastructure. We apologize for the inconvenience.
Once approved, you will get access to a new runtime environment installed on an ARM cluster. This means that you will be able to run both ARM and Linux/x86 builds from the same Codefresh account by choosing the appropriate pipeline settings.
Using ARM builders in Codefresh
Once ARM support is enabled for your account, there is no other special requirement to start building ARM images.
Just read the normal Codefresh documentation:
- Introduction to Pipelines
- Creating a Pipeline
- Codefresh YAML
- Working with Docker registries
- On demand environments
The only important thing to notice is to make sure that the base Docker images you use are ARM-compiled.
Most popular Docker images (i.e., Alpine) already offer ARM support so all your builds should work right away.
Dockerhub has a lot of public images that are offered in multiple architectures. You will get errors only if you use a less popular image that has no ARM support.
Example for an ARM build
Create a pipeline for it with the following YAML content:
This pipeline creates a Docker image for a python application and then runs unit tests inside it.
It contains three steps:
- A clone step that checks out code from the Git repository.
- A build step that reads a Dockerfile and creates a Docker image.
- A freestyle step that runs unit tests.
The logs verify that this is an ARM image:
Once the pipeline is finished you will see the Docker image stored in the default Docker Registry:
You can also launch it as a demo environment.
In summary, the workflow for ARM images is exactly the same as the usual Linux/x86 images.