BuildGrid is Maestro’s integrated Docker image builder and repository. Every time you build your images for a Maestro application, we store a copy of those images in BuildGrid. You can access these images using your Dashboard, or by logging into BuildGrid directly.
Understanding BuildGrid URLs
Every successful build process in Maestro adds an image to BuildGrid. You can see find URL for an image by clicking on a service name and then on the Image URL. Each image in your BuildGrid repository has the following structure:
subdomain.buildgrid.net/<namespace>/<app name in maestro>.<git repo name>:<hash of commit>
Finding image details via Build & Deployment Timeline
You can see details of older images from your builds using the Build & Deployment Timeline. To do this:
- Open your Application from your Cloud 66 Dashboard
- Click on Build & Deploy in the right-hand panel
- Scroll down your timeline until you find the build in question (your builds are all in the left column)
- Click on the Deploy Log link
You will now see the full historical log of the build process, including the final URL of the image that resulted. You can filter the log by server, service name and pod name.
Accessing your BuildGrid repository
You can access your repository directly using any Docker-compatible client, but you will need your BuildGrid username and password (which are different from your Cloud 66 username and password). You can find them under Settings → BuildGrid Settings.
For example using the standard Docker terminal client you can:
- Log into BuildGrid by running
docker login <subdomain>.buildgrid.netand then supplying your username and password when prompted
- Pull any image from your repo using
docker pull <full image URL>
You cannot push images to BuildGrid - it is designed to be read-only. To update an image in BuildGrid you should update your code via Cloud 66 and a new version of the image will be built and stored accordingly.
Running an image locally
Once you have pulled an image to your local machine, you can run it locally. In order to do so you will need:
- A Docker client (including the CLI)
- A Kubernetes client (such as minikube)
- The kubectl CLI
- A working knowledge of basic Docker and Kubernetes CLI commands
You can then either run the image directly from Docker using the
docker run command (more help here) or you can configure a local Kubernetes instance (see this guide for more info).