The official Docker images for GTSAM are maintained in the borglab/docker-images repository.
The following images are available on Docker Hub, primarily under the borglab namespace:
-
borglab/gtsam: A pre-compiled environment containing the latest
developbranch of GTSAM. Useful for quick testing or as a base for downstream applications.- Source:
docker-images/gtsam
- Source:
-
borglab/gtsam-manylinux: An environment based on
manylinux2014tailored for building Python wheels for GTSAM.- Source:
docker-images/gtsam-manylinux
- Source:
-
borglab/ubuntu-boost-tbb: Base image (Ubuntu 24.04) with Boost and TBB libraries pre-installed.
- Source:
docker-images/ubuntu-boost-tbb
- Source:
-
CI Images: Various images used for Continuous Integration, covering different Ubuntu versions (22.04, 24.04) and compilers (Clang, GCC).
- Source:
docker-images/gtsam-ci
- Source:
To start an interactive shell in a container with GTSAM pre-installed:
docker run -it borglab/gtsam:latestThe borglab/gtsam image typically includes Python bindings. To use them:
- Start the container:
docker run -it borglab/gtsam:latest
- Launch Python:
python3
- Import GTSAM:
import gtsam print(gtsam.Pose3())
To build these images locally or contribute changes, please refer to the borglab/docker-images repository. It contains the Dockerfiles and build scripts for all the images listed above.
The following files in this directory are legacy artifacts and are no longer actively maintained:
-
Containerfile: Build instructions for a standalone GTSAM image (cloning from git and building from source). -
compose.yaml: A Docker Compose wrapper used for configurable builds (via.envvariables likeGTSAM_WITH_TBB,GTSAM_BUILD_PYTHON) and standardized image tagging. -
hub_push.sh: A utility script to iterate through configuration matrices and push multiple image variants to Docker Hub.
For official builds and the most up-to-date configurations, please refer to the borglab/docker-images repository.
TODO: Consider migrating the configurable build and matrix-pushing functionality from these legacy files into the
docker-imagesrepository to support more flexible local builds.
The gtsam-vnc image configuration is available locally in the gtsam-vnc subdirectory. This image extends the official borglab/gtsam image by adding a VNC server, allowing you to view GUI applications (like Matplotlib plots) running inside the container.
-
Navigate to the directory:
cd gtsam-vnc -
Build the image:
You can build it using Docker Compose or directly with Docker.
# Example using docker build docker build -t gtsam-vnc .
-
Run with Port Forwarding:
Map port 5900 to access the VNC server.
docker run -p 5900:5900 gtsam-vnc
-
Connect:
Use a VNC client to connect to
localhost:5900.