Skip to main content
Dimos uses parallel Docker image hierarchies for ROS and non-ROS builds, allowing you to choose the environment that fits your use case.

Image Hierarchy

output

Images

All images are published to ghcr.io/dimensionalos/.

Tags

Images are tagged based on the git branch:

When to Use Each Image

Non-ROS Track (pythondev)

skip

ROS Track (rosros-pythonros-dev)

Use when you need ROS2 integration:
  • Robot hardware control via ROS topics
  • Navigation stack integration
  • ROS message passing between components
  • Running ROS tests (pytest -m ros)
skip

Local Development

Building Images Locally

Use the helper script:
skip

CI/CD Pipeline

Images are built by .github/workflows/docker-build.yml on merges to main/dev (when Docker files change) and weekly for base image security patches. Tests and type checking run in .github/workflows/ci.yml using pre-built images.

Build Trigger Paths

Dockerfile Structure

Common Patterns

All Dockerfiles accept a FROM_IMAGE build arg for flexibility:
skip
This allows the same Dockerfile (e.g., python) to build on different bases.

Python Package Installation

Images use uv for fast dependency installation:
skip

Dev Image Features

The dev image (docker/dev/Dockerfile) adds:
  • Git, git-lfs, pre-commit
  • Editors (nano, vim)
  • tmux with custom config
  • Node.js (via nvm)
  • Custom bash prompt with version info
  • Entrypoint script that sources ROS setup