This repository contains a collection of Dockerfiles, with an automated build and publishing pipeline.
The repository is organized as follows:
/.github/workflows/- Contains CI/CD workflows/scripts/- Contains build utility scripts/dockerfiles/- Contains individual directories for each Docker image:init-toolboxgraph-toolboxinit-stream-download- ...
Builds are automatically triggered on:
- Pushes to
mainbranch - Pull requests to
main(that modify the build workflow) - Manual triggers via workflow_dispatch
- Versions are automatically extracted from
ARG *_VERSION=declarations in each Dockerfile - The
extract-versions.shscript processes these into a JSON format - Version strings are concatenated with hyphens to create unique image tags (e.g.
1.2.3-7.8.9-2.1.0), with versions appearing in the order they are declared in the Dockerfile
Images are:
- Built using Docker Buildx for linux/amd64 platform
- Pushed to GitHub Container Registry (ghcr.io)
- Tagged with:
- Version-based tags combining all component versions (e.g.
1.2.3-1.0.0), in the order they appear in the Dockerfile - SHA-based tags for pull requests
latesttag when merged to main- Branch-based tags
- Version-based tags combining all component versions (e.g.
- Labeled with standardized OCI metadata
- GitHub's built-in authentication for package registry
- Images are only pushed on non-PR events
- SHA-pinned base images for reproducibility
To pull an image from the GitHub Container Registry:
docker pull ghcr.io/graphops/docker-builds/<image-name>:<tag>Replace <image-name> with one of the available images and <tag> with either a specific version or latest.