Unverified Commit 9c3f65f3 authored by AutonomousHansen's avatar AutonomousHansen Committed by GitHub

Comments out X11Forwarding bindings in docker-compose.yaml (#348)

# Description

We currently have X11 forwarding enabled by default. This is convenient
for certain users who want graphical displays (including IsaacSim
itself) to be forwarded from within the container. However, it is also
partially dependent upon the configuration of the host system and
requires a valid .Xauthority file which may or may not have been
created. Because this has introduced difficulties for several of our
users, I submit that we comment this portion out be default, until a
solution which allows either a `./container.sh` option, a variable in
`.env`, or both can be used to conveniently enable this option on an
affirmative basis.

If we can agree on this change, I will update the documentation
correspondingly.

## Type of change

- Breaking change (fix or feature that would cause existing
functionality to not work as expected)

## Checklist

- [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./orbit.sh --format`
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] I have updated the changelog and the corresponding version in the
extension's `config/extension.toml` file
- [x] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there
parent 620ce2b0
...@@ -18,7 +18,8 @@ services: ...@@ -18,7 +18,8 @@ services:
# that could come from installing Orbit on the local machine, causing build errors # that could come from installing Orbit on the local machine, causing build errors
environment: environment:
- ISAACSIM_PATH=${DOCKER_ISAACSIM_PATH} - ISAACSIM_PATH=${DOCKER_ISAACSIM_PATH}
- DISPLAY=${DISPLAY} # This should also be enabled for X11 forwarding
# - DISPLAY=${DISPLAY}
volumes: volumes:
# These volumes follow from this page # These volumes follow from this page
# https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/install_faq.html#save-isaac-sim-configs-on-local-disk # https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/install_faq.html#save-isaac-sim-configs-on-local-disk
...@@ -50,12 +51,17 @@ services: ...@@ -50,12 +51,17 @@ services:
source: isaac-docs source: isaac-docs
target: ${DOCKER_USER_HOME}/Documents target: ${DOCKER_USER_HOME}/Documents
# These volumes allow X11 Forwarding # These volumes allow X11 Forwarding
- type: bind # We currently comment these out because they can
source: /tmp/.X11-unix # cause bugs and warnings for people uninterested in
target: /tmp/.X11-unix # X11 Forwarding from within the docker. We keep them
- type: bind # as comments as a convenience for those seeking X11
source: ${HOME}/.Xauthority # forwarding until a scripted solution is developed
target: ${DOCKER_USER_HOME}/.Xauthority # - type: bind
# source: /tmp/.X11-unix
# target: /tmp/.X11-unix
# - type: bind
# source: ${HOME}/.Xauthority
# target: ${DOCKER_USER_HOME}/.Xauthority
# This overlay allows changes on the local files to # This overlay allows changes on the local files to
# be reflected within the container immediately # be reflected within the container immediately
- type: bind - type: bind
......
...@@ -190,8 +190,9 @@ If you see the following error when building the container: ...@@ -190,8 +190,9 @@ If you see the following error when building the container:
Error response from daemon: invalid mount config for type "bind": bind source path does not exist: ${HOME}/.Xauthority Error response from daemon: invalid mount config for type "bind": bind source path does not exist: ${HOME}/.Xauthority
This means that the ``.Xauthority`` file is not present in the home directory of the host machine. This means that the ``.Xauthority`` file is not present in the home directory of the host machine.
This file is required for X11 forwarding to work. To fix this, you can create an empty ``.Xauthority`` The portion of the docker-compose.yaml that enables this is commented out by default, so this shouldn't
file in your home directory. happen unless it has been altered. This file is required for X11 forwarding to work. To fix this, you can
create an empty ``.Xauthority`` file in your home directory.
.. code:: bash .. code:: bash
...@@ -204,8 +205,10 @@ A similar error but requires a different fix: ...@@ -204,8 +205,10 @@ A similar error but requires a different fix:
⠋ Container orbit Creating 0.0s ⠋ Container orbit Creating 0.0s
Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /tmp/.X11-unix Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /tmp/.X11-unix
This means that the folder/files are either not present or not accessible on the host machine. This usually happens This means that the folder/files are either not present or not accessible on the host machine.
when you have multiple docker versions installed on your machine. To fix this, you can try the following: The portion of the docker-compose.yaml that enables this is commented out by default, so this
shouldn't happen unless it has been altered. This usually happens when you have multiple docker
versions installed on your machine. To fix this, you can try the following:
* Remove all docker versions from your machine. * Remove all docker versions from your machine.
...@@ -226,6 +229,11 @@ attempting to use WebRTC streaming client on Google Chrome and Safari while runn ...@@ -226,6 +229,11 @@ attempting to use WebRTC streaming client on Google Chrome and Safari while runn
To avoid this problem, we suggest using either the Native Streaming Client or WebSocket options, or using the To avoid this problem, we suggest using either the Native Streaming Client or WebSocket options, or using the
Mozilla Firefox browser on which WebRTC works. Mozilla Firefox browser on which WebRTC works.
Streaming is the only supported method for visualizing the Isaac GUI from within the container. The Omniverse Streaming Client
is freely available from the Omniverse app, and is easy to use. The other streaming methods similarly require only a web browser.
If users want to use X11 forwarding in order to have the apps behave as local GUI windows, they can uncomment the relevant portions
in docker-compose.yaml.
.. _`NVIDIA Omniverse EULA`: https://docs.omniverse.nvidia.com/platform/latest/common/NVIDIA_Omniverse_License_Agreement.html .. _`NVIDIA Omniverse EULA`: https://docs.omniverse.nvidia.com/platform/latest/common/NVIDIA_Omniverse_License_Agreement.html
.. _`container installation`: https://docs.omniverse.nvidia.com/isaacsim/latest/installation/install_container.html .. _`container installation`: https://docs.omniverse.nvidia.com/isaacsim/latest/installation/install_container.html
......
...@@ -134,7 +134,8 @@ We will now run the example script: ...@@ -134,7 +134,8 @@ We will now run the example script:
This will spawn a 0.5m\ :sup:`3` volume cuboid in the simulation. No GUI will appear, equivalent This will spawn a 0.5m\ :sup:`3` volume cuboid in the simulation. No GUI will appear, equivalent
to if we had passed the ``--headless`` flag because headlessness is implied by our ``LIVESTREAM`` to if we had passed the ``--headless`` flag because headlessness is implied by our ``LIVESTREAM``
envar. If a visualization is desired, we could get one via Isaac's `Native Livestreaming`_. The envar. If a visualization is desired, we could get one via Isaac's `Native Livestreaming`_. Streaming
is currently the only supported method of visualization from within the container. The
process can be killed by pressing ``Ctrl+C`` in the launching terminal. process can be killed by pressing ``Ctrl+C`` in the launching terminal.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment