Repository navigation
Expand file tree
/
Copy pathsetup.env
More file actions
72 lines (59 loc) · 3.07 KB
/
Copy pathsetup.env
File metadata and controls
72 lines (59 loc) · 3.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# Group ID of the user on the host machine
#
# NOTE: on a ROOTLESS Docker host the host user maps to container UID 0, so set
# both of these to 0 (and RR_USERNAME=root) to keep a bind-mounted ros2_ws
# writable. On a rootful host leave them as the host uid/gid below.
RR_USER_GID=$(id -g $(whoami))
# User ID of the user on the host machine
RR_USER_UID=$(id -u)
# Username to be used inside the container
RR_USERNAME=user
# Name of the Docker image to be built
RR_IMAGE_NAME=devcontainer_image
# ROS 2 distribution to be used (e.g., foxy, jazzy, etc.)
RR_ROS_DISTRO=humble
# ROS 2 domain ID passed into the container as ROS_DOMAIN_ID. Isolates this
# project's nodes from others on the same host/segment. 0 = ROS 2 default.
RR_ROS_DOMAIN_ID=0
# Enable SSH access to the container (0 = disabled, 1 = enabled)
RR_SSH_ENABLED=0
# Port to use for SSH access if SSH is enabled
RR_SSH_PORT=20022
# ---------------------------------------------------------------------------
# DDS / network containment
#
# The container runs with --net=host, so an uncontained DDS multicasts SPDP
# discovery (239.255.0.1) onto the host's real NICs (your wired/Wi-Fi LAN) and
# exposes every topic to any ROS 2 node on the segment with the same
# ROS_DOMAIN_ID. The XML profiles below pin all RTPS traffic to loopback
# (127.0.0.1), so nothing leaks. run.bash bind-mounts ./config into the
# container at /ros2_ws/config and points the DDS env vars at these files.
#
# Containment is done by the per-transport XML profiles, NOT by
# ROS_LOCALHOST_ONLY, which is kept 0 on purpose: (1) Fast DDS's
# ROS_LOCALHOST_ONLY handling leaves SPDP sockets on 0.0.0.0 on some Humble
# revisions; (2) with cyclonedds, ROS_LOCALHOST_ONLY=1 injects its own
# lo-binding config that collides with CYCLONEDDS_URI ("the same interface may
# not be selected twice") and aborts node creation. The XML profile is the
# single source of truth. Set RR_ROS_LOCALHOST_ONLY=1 only if you drop the XML
# profiles. To opt out of containment entirely, blank both URI vars below.
RR_ROS_LOCALHOST_ONLY=0
# Cyclone DDS loopback profile (used when RMW_IMPLEMENTATION=rmw_cyclonedds_cpp).
RR_CYCLONEDDS_URI=/ros2_ws/config/cyclonedds_loopback.xml
# Fast DDS loopback profile (used when RMW_IMPLEMENTATION=rmw_fastrtps_cpp,
# the ROS 2 default on Humble/Jazzy).
RR_FASTRTPS_PROFILE=/ros2_ws/config/fastdds_loopback.xml
# ---------------------------------------------------------------------------
# Enable NVIDIA GPU passthrough (--gpus=all). 0 = disabled, 1 = enabled.
# Requires nvidia-container-toolkit on the host.
RR_GPU_ENABLED=0
# Enable USB passthrough. 0 = disabled, 1 = enabled. When enabled, run.bash
# bind-mounts /dev/bus/usb into the container and adds the host's plugdev group
# GID as a supplementary group, so libusb-based tools can reach USB devices
# without --privileged. The container user is in plugdev (see Dockerfile); the
# host still needs a udev rule granting the device to plugdev.
RR_USB_ENABLED=0
# Extra docker volumes to mount, comma-separated.
# Format: "host_path:container_path[:opts],volume_name:container_path"
# Leave empty for none.
RR_VOLUMES=""