This repository hosts various Dockerfiles used for developing, testing, and distributing software from Borglab, primarily focusing on GTSAM and GTDynamics.
Each subdirectory contains a README with specific details.
-
ubuntu-base: Base image (Ubuntu 24.04) with Boost (and optionally, TBB) libraries pre-installed. Serves as a foundation for other images.
-
gtsam: A pre-compiled environment containing the latest
developbranch of GTSAM. Useful for quick testing or as a base for downstream apps. -
gtsam-manylinux: An environment based on
manylinux2014tailored for building Python wheels for GTSAM. -
gtdynamics-manylinux: Extends
gtsam-manylinuxwith Ignition/Gazebo dependencies (SDFormat, ign-math, etc.) for building GTDynamics Python wheels. -
gtsam-ci: A collection of images used in GitHub Actions for Continuous Integration. Includes matrices for different Ubuntu versions (22.04, 24.04) and compilers (Clang, GCC).
You can build any of these images locally by navigating to the directory and running docker build. Check the specific READMEs for detailed instructions.
Many of these images are available on Docker Hub under the borglab namespaces.
This repository includes repo-local Codex skills under .agents/skills. These skills give maintainers and AI agents project-specific workflows for common maintenance tasks.
Current skills:
gtsam-ci-image: create or update GTSAM CI Docker images, smoke test them, and prepare the maintainer handoff for publishing the correspondingborglab/gtsam-ciDocker Hub tag.
Example prompt to try from this repository:
Use $gtsam-ci-image to add a new GTSAM CI Docker image for Ubuntu 26.04 with GCC 15. Create the needed Dockerfile(s), update the gtsam-ci README, build the image locally if Docker is available, smoke test it, and give me the maintainer handoff commands for publishing the new borglab/gtsam-ci tag. Do not push anything without asking me first.
- Create a new branch for your changes.
- If adding a new image, create a new directory with a
Dockerfileand aREADME.md. - Test the build locally.
- Submit a Pull Request.