Skip to content
Docker images for running Mapbox GL integration tests on CircleCI
Shell Roff
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

This repository contains Docker files for running Mapbox GL integration tests on CircleCI.


  • ⚠️ Never overwrite published tags. Instead, we use a revision system, using a Docker Hub repository for every set of images. The name of the repository is the name of the image, and the versions is the first 10 bytes of the Git SHA.
  • Do not delete old images from Docker Hub. Retaining old images on Docker Hub means that we can still build older branches.
  • Reduce ephemeral/temporary data by combining multiple commands into one RUN command. Unfortunately, Circle CI doesn't support --squash, so we'll have to make sure that we're not creating unused files. E.g. when you run apt-get update, also run rm -rf /var/lib/apt/lists/* in the same step to remove the repository metadata.

Adding a new image

When you want to add a new image, e.g. a new compiler version or a new Android NDK version, duplicate an existing file in the images directory, annd change it to suit your needs. There's usually no need to keep previous versions of e.g. the Android NDK around. Legacy branches of mapbox-gl-native will use legacy Docker images that contain the legacy NDKs.


To trigger a build, include [docker:imagename] in the commit message and push to Github. Only the most recent commit of a branch will be built.

Every set of images has a "Revision ID", which is based on the first 10 characters of the Git SHA. You can also see this ID by looking into the "Revision ID" step on any Circle CI build in the workflow.

When the workflow you're building fails, please remove images that you generated but don't need anymore from Docker Hub to prevent heaps of unused Docker images piling up.

Local development

To speed up local development, you can run scripts/ to launch a local APT proxy that caches package downloads. Then run ./ <imagename> to build the image locally.

You can’t perform that action at this time.