docker gazebo gz ionic vscode Run gazebo ionic on docker Dockerfile Docker file 1 Run the image 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15xhost +local:docker docker run --gpus all -it --rm \ --name ionic \ --hostname gz \ --user user \ --network host \ --env="QT_X11_NO_MITSHM=1" \ --env="DISPLAY" \ -v /tmp/.X11-unix:/tmp/.X11-unix:rw \ -v /dev/dri:/dev/dri \ -v /dev/nvidia0:/dev/nvidia0 \ -v /dev/nvidiactl:/dev/nvidiactl \ -v /dev/nvidia-modeset:/dev/nvidia-modeset \ gz:ionic Use VSCode and docker Using docker-compose Using devcontainer to run the docker compose 1 2 3 4 5 6 7├── .devcontainer │ └── devcontainer.json ├── docker-compose.yaml ├── .gitignore └── gz_tutorial └── worlds └── empty.world docker-compose.yaml 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 29services: gazebo: image: gz:harmonic network_mode: host user: user stdin_open: true tty: true hostname: gz environment: - DISPLAY=${DISPLAY} - QT_X11_NO_MITSHM=1 - NVIDIA_VISIBLE_DEVICES=all - NVIDIA_DRIVER_CAPABILITIES=all - GZ_TRANSPORT_IP=gazebo - GZ_DISCOVERY_SERVER=gazebo - GZ_PARTITION=my_simulation volumes: - .:/workspace:cached - ./.gz:/home/user/.gz:cached - /tmp/.X11-unix:/tmp/.X11-unix:rw - /dev/dri:/dev/dri - /dev/nvidia0:/dev/nvidia0 - /dev/nvidiactl:/dev/nvidiactl - /dev/nvidia-modeset:/dev/nvidia-modeset deploy: resources: reservations: devices: - capabilities: [gpu] .devcontainer/devcontainer.json 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23{ "name": "gz_tutorial", "dockerComposeFile": "../docker-compose.yaml", "service": "gazebo", "shutdownAction": "stopCompose", "workspaceFolder": "/workspace", "remoteUser": "user", "customizations": { "vscode": { "extensions": [ "ms-python.python", "ms-vscode.cpptools", "twxs.cmake", "redhat.vscode-xml", "redhat.vscode-yaml", "albert.tabout", "actboy168.tasks", "streetsidesoftware.code-spell-checker" ], "settings": {} } } }