# [Build and share Docker images using AWS CodeBuild](https://learn.arm.com/learning-paths/servers-and-cloud-computing/codebuild/)

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/servers-and-cloud-computing/codebuild/)
- [Build Docker images using AWS CodeBuild](https://learn.arm.com/learning-paths/servers-and-cloud-computing/codebuild/codebuild/)
- [Run Docker images from Docker Hub and AWS Elastic Container Registry (ECR)](https://learn.arm.com/learning-paths/servers-and-cloud-computing/codebuild/codebuild_run/)
- [Next Steps](https://learn.arm.com/learning-paths/servers-and-cloud-computing/codebuild/_next-steps/)

## About this Learning Path

| Skill level: | Advanced |
|--------------|----------|
| Reading time: | 30 min  |
| Last updated: | 31 Jul 2026 |

| Author: | Jason Andrews, Arm [GitHub](https://github.com/jasonrandrews) [LinkedIn](https://linkedin.com/in/jason-andrews-7b05a8) |
|----------|-------------------------------------------------------------------------------------------------------------|
| Arm IP: | [Neoverse](https://support.arm.com/?tab=compute-ip&Product%20Type=Infrastructure%20Processors)              |
| Tags:   | [CI-CD](https://learn.arm.com/tag/ci-cd), [AWS](https://learn.arm.com/tag/aws), [Linux](https://learn.arm.com/tag/linux), [Docker](https://learn.arm.com/tag/docker), [AWS CodeBuild](https://learn.arm.com/tag/aws-codebuild) |

### Who is this for?
This is an advanced topic for software developers interested in using AWS CodeBuild to automate container build tasks.

### What will you learn?
Upon completion of this Learning Path, you will be able to:
- Use a GitHub project and AWS CodeBuild to automate Docker image creation
- Pull and run the created Docker images on any Arm computer with Docker installed

### Prerequisites
Before starting, you will need the following:
- An [AWS account](https://learn.arm.com/learning-paths/servers-and-cloud-computing/csp/aws/) for accessing AWS cloud services.
- An [Arm based instance](https://learn.arm.com/learning-paths/servers-and-cloud-computing/csp/) from a cloud service provider or any Arm server, laptop, or single-board computer running [Docker](https://learn.arm.com/install-guides/docker/) used to run the created images.

### Summary
You’ll use AWS CodeBuild and a GitHub repository to build AArch64 Docker images on AWS Graviton. You’ll publish the images to Docker Hub and Amazon ECR Public Gallery, then pull and run them on an Arm Linux machine with Docker. Finally, you’ll verify the architecture with `uname -m` and compare the images from both registries.

### Frequently asked questions
<details>
<summary>How do I confirm I’m on an Arm AArch64 machine before running the images?</summary>
Run `uname -m` on the target Linux system. The expected output is `aarch64`. If you see a different value, you’re not on a 64-bit Arm machine.
</details>

<details>
<summary>How do I know the CodeBuild job is finished and images are ready to use?</summary>
When the CodeBuild project completes successfully, you can pull the images from Docker Hub or Amazon ECR Public Gallery and run them on an Arm machine with Docker.
</details>

<details>
<summary>Which registry should I pull from?</summary>
Both registries provide the same images. Choose Docker Hub or Amazon ECR Public Gallery based on which registry fits your environment.
</details>

<details>
<summary>What result should I expect when I run the container to verify the build?</summary>
Running `uname -m` inside the container should return `aarch64`, and the output should match regardless of which registry you used. The example also shows that CodeBuild built the image on Amazon Linux 2.
</details>

<details>
<summary>Do I need to select an Arm or Graviton environment in CodeBuild to target AArch64?</summary>
Yes. Select an Arm-based environment in CodeBuild to build AArch64 Docker images from a GitHub-hosted project.
</details>
