diff --git a/docker/Dockerfile.isaaclab_arena b/docker/Dockerfile.isaaclab_arena index e24a4bd9..76b399fa 100644 --- a/docker/Dockerfile.isaaclab_arena +++ b/docker/Dockerfile.isaaclab_arena @@ -37,11 +37,13 @@ ENV ISAACLAB_PATH=${WORKDIR}/submodules/IsaacLab ENV TERM=xterm # Symlink isaac sim to IsaacLab RUN ln -s /isaac-sim/ ${WORKDIR}/submodules/IsaacLab/_isaac_sim -# Install IsaacLab dependencies -RUN for DIR in ${WORKDIR}/submodules/IsaacLab/source/isaaclab*/; do pip install --no-deps -e "$DIR"; done # Logs and other stuff appear under dist-packages per default, so this dir has to be writeable. RUN chmod 777 -R /isaac-sim/kit/ -# # Pre-install flatdict with --no-build-isolation to work around pkg_resources missing in pip's isolated build env +# Upgrade Isaac Sim's pip to avoid version warnings and build issues +RUN /isaac-sim/python.sh -m pip install --upgrade pip +# Install IsaacLab dependencies +RUN for DIR in ${WORKDIR}/submodules/IsaacLab/source/isaaclab*/; do /isaac-sim/python.sh -m pip install --no-deps -e "$DIR"; done +# Pre-install flatdict with --no-build-isolation to work around pkg_resources missing in pip's isolated build env RUN /isaac-sim/python.sh -m pip install --no-build-isolation flatdict==4.0.1 # Install isaaclab RUN ${ISAACLAB_PATH}/isaaclab.sh -i @@ -49,7 +51,7 @@ RUN ${ISAACLAB_PATH}/isaaclab.sh -i # Patch for osqp in IsaacLab. Downgrade qpsolvers # TODO(alexmillane): Watch the thread here: https://nvidia.slack.com/archives/C06HLQ6CB41/p1764680205807019 # and remove this thread when IsaacLab has a fix. -RUN if python -c "import qpsolvers; print(qpsolvers.available_solvers)" | grep -q "osqp"; then \ +RUN if /isaac-sim/python.sh -c "import qpsolvers; print(qpsolvers.available_solvers)" | grep -q "osqp"; then \ echo "OSQP is installed. You can remove this clause from the Arena dockerfile."; \ else \ echo "OSQP missing, installing... This is a patch for an Isaac Lab bug."; \ @@ -134,7 +136,7 @@ RUN echo "alias pytest='/isaac-sim/python.sh -m pytest'" >> /etc/bash.bashrc # It will pause waiting for the debugger to attach. # 3) Attach to the running container with VSCode using the "Attach to debugpy session" # configuration from the Run and Debug panel. -RUN pip3 install debugpy +RUN /isaac-sim/python.sh -m pip install debugpy RUN echo "alias debugpy='python -Xfrozen_modules=off -m debugpy --listen localhost:5678 --wait-for-client'" >> /etc/bash.bashrc # Change prompt so it's obvious we're inside the arena container diff --git a/docker/run_docker.sh b/docker/run_docker.sh index 87da931e..5a98226f 100755 --- a/docker/run_docker.sh +++ b/docker/run_docker.sh @@ -150,6 +150,8 @@ else "-v" "/tmp/.X11-unix:/tmp/.X11-unix:rw" "-v" "/var/run/docker.sock:/var/run/docker.sock" "-v" "$HOME/.Xauthority:/root/.Xauthority" + # Mount host SSL certificate store so the container trusts CA certs + "-v" "/etc/ssl/certs:/etc/ssl/certs:ro" "--env" "DISPLAY" "--env" "ACCEPT_EULA=Y" "--env" "PRIVACY_CONSENT=Y" @@ -160,11 +162,9 @@ else # Setting envs for XR: https://isaac-sim.github.io/IsaacLab/v2.1.0/source/how-to/cloudxr_teleoperation.html#run-isaac-lab-with-the-cloudxr-runtime "--env" "XDG_RUNTIME_DIR=${WORKDIR}/submodules/IsaacLab/openxr/run" "--env" "XR_RUNTIME_JSON=${WORKDIR}/submodules/IsaacLab/openxr/share/openxr/1/openxr_cloudxr.json" - # NOTE(alexmillane, 2025.07.23): This looks a bit suspect to me. We should be running - # as a user inside the container, not root. I've left it in for now, but we should - # remove it, if indeed it's not needed. - # "--env" "OMNI_KIT_ALLOW_ROOT=1" "--env" "ISAACLAB_PATH=${WORKDIR}/submodules/IsaacLab" + # Tell requests/urllib3 to use the system cert bundle + "--env" "REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt" ) # map omniverse auth or config so we have connection to the dev nucleus