About this Learning Path

Who is this for?

This is an introductory topic for developers who want to build and run multi-architecture Docker images with Buildkite on Arm-based Google Cloud C4A virtual machines (VM) powered by Google Axion processors.

What will you learn?

Upon completion of this Learning Path, you will be able to:

  • Provision an Arm-based VM on Google Cloud running either SUSE Linux Enterprise Server or Ubuntu
  • Install and configure Docker, Docker Buildx, and the Buildkite agent
  • Write a Dockerfile to containerize a simple Flask-based Python application
  • Configure a Buildkite pipeline to build a multi-architecture Docker image and push it to Docker Hub
  • Start the application and verify that it runs correctly

Prerequisites

Before starting, you will need the following:

Summary

AI-assisted

This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
You’ll provision an Arm-based Google Cloud C4A virtual machine powered by Google Axion, install Docker, Docker Buildx, and the Buildkite agent, and connect the agent to a Buildkite queue. First, you’ll create a small Flask application and Dockerfile in a GitHub repository, then configure a Buildkite pipeline that uses Buildx to build a multi-architecture container image, and push it to Docker Hub. You’ll use Ubuntu or SUSE on the VM and validate that the agent is online. By the end, you’ll have a published image and a running Flask service to confirm the build.

Frequently asked questions

AI-assisted

These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
Which Google Cloud instance type and OS should I use for the VM?
Use a Google Axion C4A Arm VM, specifically c4a-standard-4 with 4 vCPUs and 16 GB memory. You can select either Ubuntu or SUSE Linux Enterprise Server as the OS.
Where do I create the Buildkite agent token, and when do I use it?
Create an agent token in your Buildkite organization after signing in (GitHub sign-in is supported). You use this token during the agent installation and configuration on the C4A VM.
How do I confirm the Buildkite agent is connected and assigned to the right queue?
After configuring the agent and queue, check the Agents page in Buildkite; the agent should appear online with the expected queue. If it doesn’t, check the agent configuration and queue name, then repeat the verification step.
What files should my GitHub repository contain for the example application?
Add a Dockerfile and a Python file named app.py. The provided Dockerfile uses python:3.12-slim, installs Flask, exposes port 5000, and runs the app.
What result should I expect after the pipeline runs successfully?
A multi-architecture Docker image for Arm and x86 is built with Docker Buildx and pushed to Docker Hub. You then start the containerized Flask application and verify that it runs as the final validation step.
Next