ros-notebook is a community maintained Jupyter Docker Stack image that adds ROS to the common notebook containers such as the datascience-notebook
.
Short tags are all based on the datascience-notebook
where <ros-version>
is the ROS version. For example, noetic
is a ROS Noetic image based on the datascience-notebook
.
ROS | Jupyter |
---|---|
All other tags are formed as follows:
<notebook-type>-<ros-version>
where <ros-version>
is the ROS version and <notebook-type>
is the type of notebook. For example, minimal-noetic
is a ROS Noetic image based on the minimal-notebook
.
An example Dockerfile
for a custom notebook image:
FROM ghcr.io/mpo-web-consulting/ros-notebook:minimal-noetic
# add your customizations here
USER root
RUN mamba install -y tensorflow && \
mamba clean -y -f && \
fix-permissions "${CONDA_DIR}" && \
fix-permissions "/home/${NB_USER}"
# switch back to jovyan to avoid accidental container runs as root
USER ${NB_UID}
# create a virtual environment
python3 -m venv venv
# activate the virtual environment
source venv/bin/activate
# install the dependencies
pip install -r requirements-dev.txt
The images and actions are generated from templates using Jinja2. The templates are located in the templates
directory. The images are defined in images.yaml
.
Use the following commands to generate the images and github actions files:
# generate Dockerfiles for all images
python3 scripts/generate_images.py templates/Dockerfile.j2 images images.yaml
# generate actions for all images
python3 scripts/generate_workflows.py templates/action.yml.j2 images .github/workflows