Skip to content

docs(docker-new): add compose examples (basic + awsim + planning-sim)#7037

Merged
xmfcx merged 2 commits intomainfrom
feat/split-06-docker-new-examples
Apr 20, 2026
Merged

docs(docker-new): add compose examples (basic + awsim + planning-sim)#7037
xmfcx merged 2 commits intomainfrom
feat/split-06-docker-new-examples

Conversation

@xmfcx
Copy link
Copy Markdown
Contributor

@xmfcx xmfcx commented Apr 20, 2026

  • Parent Issue: Simplify the docker images and workflows #6852
  • basic/ — three dev-shell compose files picking the right universe-devel-* image for the host GPU story: dev-cpu.compose.yaml (LIBGL_ALWAYS_SOFTWARE=1, no GPU), dev-dri.compose.yaml (/dev/dri passthrough for Mesa iris/radeonsi/nouveau), dev-nvidia.compose.yaml (runtime: nvidia + universe-devel-cuda-jazzy). All three forward $DISPLAY, mount ~/autoware_map / ~/autoware_data, and remap the in-container aw user to the host UID/GID.
  • demos/planning-simulator/ — auto-launches planning_simulator.launch.xml with the sample map on universe-jazzy. Base docker-compose.yaml ships software rendering; docker-compose.dri.yaml and docker-compose.nvidia.yaml are overlays merged via -f base -f overlay for Intel/AMD or NVIDIA hardware acceleration.
  • demos/awsim/ — bridges to the AWSIM Unity simulator via network_mode: host and launches e2e_simulator.launch.xml on universe-cuda-jazzy. See docker-compose.yaml.
  • Entrypoint convention. Demo command: blocks end with exec bash so the container drops to an interactive shell after the launch exits, instead of disappearing.

Why

The docker-new images landed without any user-facing launch examples — contributors had to reverse-engineer which tag to use, how to forward X11, when to add runtime: nvidia vs /dev/dri, and how the HOST_UID/HOST_GID entrypoint remap works. These compose files are the canonical "which knob for which host" reference and pair the three GPU passthrough strategies with the three image flavors (universe-devel, universe, universe-cuda) we actually ship.


Test plan

  • Basic dev-shell on an NVIDIA host — expect glxinfo -B to report NVIDIA Corporation:
    xhost +local:docker && HOST_UID=$(id -u) HOST_GID=$(id -g) docker compose -f docker-new/examples/basic/dev-nvidia.compose.yaml run --rm autoware bash -c "glxinfo -B | grep -E 'OpenGL (vendor|renderer)'"
  • Basic dev-shell on an Intel/AMD host — expect Mesa Intel... or AMD Radeon..., not llvmpipe:
    xhost +local:docker && HOST_UID=$(id -u) HOST_GID=$(id -g) docker compose -f docker-new/examples/basic/dev-dri.compose.yaml run --rm autoware bash -c "glxinfo -B | grep -E 'OpenGL (vendor|renderer)'"
  • Basic dev-shell CPU fallback — expect llvmpipe:
    xhost +local:docker && HOST_UID=$(id -u) HOST_GID=$(id -g) docker compose -f docker-new/examples/basic/dev-cpu.compose.yaml run --rm autoware bash -c "glxinfo -B | grep -E 'OpenGL (vendor|renderer)'"
  • Planning simulator launches on base compose (software rendering). With ~/autoware_map/sample-map-planning present, expect rviz to render the vector map:
    xhost +local:docker && HOST_UID=$(id -u) HOST_GID=$(id -g) docker compose -f docker-new/examples/demos/planning-simulator/docker-compose.yaml run --rm planning-simulator
  • Planning simulator NVIDIA overlay merges cleanly — expect runtime: nvidia in the resolved config:
    docker compose -f docker-new/examples/demos/planning-simulator/docker-compose.yaml -f docker-new/examples/demos/planning-simulator/docker-compose.nvidia.yaml config | grep -E "runtime|NVIDIA_"
  • Planning simulator DRI overlay merges cleanly — expect /dev/dri in devices::
    docker compose -f docker-new/examples/demos/planning-simulator/docker-compose.yaml -f docker-new/examples/demos/planning-simulator/docker-compose.dri.yaml config | grep -E "devices|/dev/dri"
  • AWSIM demo config resolves with network_mode: host and runtime: nvidia:
    docker compose -f docker-new/examples/demos/awsim/docker-compose.yaml config | grep -E "network_mode|runtime"
  • UID/GID remap works — inside any of the dev shells, expect the aw user's UID/GID to match the host:
    HOST_UID=$(id -u) HOST_GID=$(id -g) docker compose -f docker-new/examples/basic/dev-cpu.compose.yaml run --rm autoware bash -c "id -u && id -g"

…ng-simulator)

Ship compose file examples under docker-new/examples/ so new users can
bring up a working environment without assembling the flags by hand:

- basic/: three starter compose files for the devel image on CPU-only
  hosts, Intel/AMD hosts with DRI, and NVIDIA hosts with the container
  runtime. Same image, same entrypoint, just different device plumbing.
- demos/awsim/: brings up the universe-cuda image alongside the AWSIM
  simulator for end-to-end testing.
- demos/planning-simulator/: runs the planning-simulator scenario with
  DRI and NVIDIA variants on top of the universe image.

Each directory has its own README walking through prerequisites, run
steps, and what to verify.

Signed-off-by: Mete Fatih Cırıt <mfc@autoware.org>
@xmfcx xmfcx requested a review from mitsudome-r as a code owner April 20, 2026 07:16
@xmfcx xmfcx self-assigned this Apr 20, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 20, 2026

Thank you for contributing to the Autoware project!

🚧 If your pull request is in progress, switch it to draft mode.

Please ensure:

Comment thread docker-new/examples/demos/planning-simulator/README.md Outdated
Co-authored-by: Ryohsuke Mitsudome <43976834+mitsudome-r@users.noreply.github.com>
@xmfcx xmfcx merged commit 40aa3be into main Apr 20, 2026
21 of 23 checks passed
@xmfcx xmfcx deleted the feat/split-06-docker-new-examples branch April 20, 2026 12:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

run:health-check Run health-check

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants