NorLab TeamCity GUI
(VPN/intranet access) •
norlabulaval
(Docker Hub)
Jetson-Containers
•
This repository is the image builder side of Dockerized-NorLab project application (DNA).
Dockerized-NorLab is a containerized development workflow for NorLab robotic software engineering project leveraging Docker and NVIDIA Container Toolkit.
Maintainer Luc Coupal
- CUDA support via NVIDIA Container Toolkit
- Multi architectures:
l4t/arm64,linux/amd64 - Multi OS versions:
- Jetpack:
r36.4.0,r35.4.1 - Ubuntu:
jammy,focal
- Jetpack:
- Multi ros2 distros:
humble,galactic, (archived:foxy) - Multi ros2 packages:
core,base,desktop - Multi packages (non-exhaustive list):
- Deep-learning:
pytorch,torch2trt,tensordict - Deep-rl:
torchrl - Numerical computing:
numpy,numba,pycuda,tensorrt - MLOps:
ray,omegaconf,hydra-core
- Deep-learning:
- custom dependency management;
- development environment consistency;
- codebase stabilization trough continuous integration pipeline;
- easy deployment to robots compute box;
- results reproducibility.
Recommanded reading by Tobit Flatscher
- Why should I use Docker when developing robotics software?
- Why is Docker important in particular for academic and research institutions?
Use Dockerized-NorLab project application (DNA), its made to work with DN images.
Note: Dockerized-Norlab images are intended to be used as base images for Dockerized-NorLab project application (DNA).
-
Pick an images that fit your project, the most basic one is dockerized-norlab-dependencies-full
-
Pick the tag that fit your needs, e.g.
DN-bleeding-foxy-base-l4t-pytorch-r35.4.1
Notes:bleedingis for the DNdevbranch,foxyis the ros version,baseis the ROS package type,l4t-pytorchis the Jetson container pkg,r35.4.1is the Jetpack version -
Pull the image from Dockerhub
docker pull norlabulaval/dockerized-norlab-dependencies-full:DN-bleeding-foxy-base-l4t-pytorch-r35.4.1
-
Pull the image from Dockerhub
docker run -it --rm \ --env ROS_DOMAIN_ID=1 --env DISPLAY="${DISPLAY}" --env QT_X11_NO_MITSHM=1 \ --net host -p 2222:2222 -p 6006:6006 -p 7777:7777 \ --privileged \ -v /etc/localtime:/etc/localtime:ro -v /tmp/.X11-unix:/tmp/.X11-unix:rw -v /tmp/.docker.xauth:/tmp/.docker.xauth:rw \ norlabulaval/dockerized-norlab-dependencies-full:DN-bleeding-foxy-base-l4t-pytorch-r35.4.1Note:
- Add the
--runtime nvidiaflag if you have nvidia gpu and NVIDIA Container Toolkit is installed. - For MacOs user, replace the line
--net host -p 2222:2222 -p 6006:6006 -p 7777:7777with--net bridge.
- Add the
Notes:
- All images are multi-architecture build (amr64 and amd64).
- Most have CUDA support via NVIDIA Container Toolkit base image, both for L4T (aka Jetson OS) and ubuntu.
- Bleeding tags are build from the latest
devbranch version (e.g.DN-bleeding-foxy-base-l4t-pytorch-r35.4.1) and are rebuild each week. - All images also have a tag pinned for each release version, starting from release v0.5.2, e.g.
DN-v0.5.2-foxy-ros-core-l4t-r35.2.1.
dockerized-norlab-control-deep-rl-openai-gym (legacy Gym)
git clone --recurse-submodule https://github.com/norlab-ulaval/dockerized-norlab.gitAssuming a docker builder with multi-architecture docker-container driver named local-builder-multiarch-virtual
execute the following in repository root
export BUILDX_BUILDER=local-builder-multiarch-virtual \
&& export NBS_OVERRIDE_BUILD_MATRIX_MAIN=".env.build_matrix.main" \
&& export NBS_OVERRIDE_ADD_DOCKER_CMD_AND_FLAG="build --push" \
&& source dockerized-norlab-scripts/build_script/dn_build_all.bashNote: To create a multi-architecture docker builder with architecture virtualization
docker buildx create \
--name local-builder-multiarch-virtual \
--driver docker-container \
--node local \
--platform linux/amd64,linux/arm64 \
--bootstrap \
--use