From 6dee1a60a238c4700c97cac44314fcfcee3ae0a5 Mon Sep 17 00:00:00 2001 From: Bryce Adelstein Lelbach Date: Fri, 10 Jul 2026 20:16:33 +0000 Subject: [PATCH] Fix Jupyter Nsight service proxies --- brev/entrypoint-jupyter-user.bash | 8 +++++++- tutorials/cuda-cpp/brev/dockerfile | 1 + tutorials/cuda-tile/brev/dockerfile | 1 + tutorials/nvmath-python/brev/dockerfile | 2 +- tutorials/stdpar/brev/docker-recipe.py | 2 +- 5 files changed, 11 insertions(+), 3 deletions(-) diff --git a/brev/entrypoint-jupyter-user.bash b/brev/entrypoint-jupyter-user.bash index 5c78eac6..7e673761 100755 --- a/brev/entrypoint-jupyter-user.bash +++ b/brev/entrypoint-jupyter-user.bash @@ -6,6 +6,12 @@ set -euo pipefail export HOME="${ACH_TARGET_HOME}" +if [ -n "${ACH_PORT_FORWARDS:-}" ] && ! command -v socat &> /dev/null; then + echo "Error: ACH_PORT_FORWARDS is configured, but socat is not installed." >&2 + echo "Install socat in the tutorial image to enable Jupyter service proxies." >&2 + exit 1 +fi + # Generate Jupyter plugin settings /accelerated-computing-hub/brev/jupyter-generate-plugin-settings.bash @@ -13,7 +19,7 @@ mkdir -p /accelerated-computing-hub/logs # Forward ports from other Docker Compose services to localhost so that # jupyter-server-proxy can reach them (it only proxies to localhost). -if command -v socat &> /dev/null; then +if [ -n "${ACH_PORT_FORWARDS:-}" ]; then for FORWARD in ${ACH_PORT_FORWARDS:-}; do LOCAL_PORT="${FORWARD%%:*}" REMOTE="${FORWARD#*:}" diff --git a/tutorials/cuda-cpp/brev/dockerfile b/tutorials/cuda-cpp/brev/dockerfile index 341118ab..56948e2b 100644 --- a/tutorials/cuda-cpp/brev/dockerfile +++ b/tutorials/cuda-cpp/brev/dockerfile @@ -22,6 +22,7 @@ RUN apt-get update -y \ gnupg \ gosu \ libglib2.0-0 \ + socat \ sudo \ ffmpeg \ && apt-get clean -y \ diff --git a/tutorials/cuda-tile/brev/dockerfile b/tutorials/cuda-tile/brev/dockerfile index b88e9b67..b11b84b6 100644 --- a/tutorials/cuda-tile/brev/dockerfile +++ b/tutorials/cuda-tile/brev/dockerfile @@ -28,6 +28,7 @@ RUN apt-get update -y \ lsb-release \ gosu \ libglib2.0-0 \ + socat \ sudo \ && apt-get clean -y \ && rm -rf /var/lib/apt/lists/* diff --git a/tutorials/nvmath-python/brev/dockerfile b/tutorials/nvmath-python/brev/dockerfile index 64e26e0a..5433a113 100644 --- a/tutorials/nvmath-python/brev/dockerfile +++ b/tutorials/nvmath-python/brev/dockerfile @@ -14,7 +14,7 @@ RUN set -ex \ && rm -f /opt/requirements.txt \ && `# Install system packages` \ && apt-get update -y \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git-lfs gosu sudo \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git-lfs gosu socat sudo \ && apt-get clean -y \ && rm -rf /var/lib/apt/lists/* diff --git a/tutorials/stdpar/brev/docker-recipe.py b/tutorials/stdpar/brev/docker-recipe.py index d3f98558..e8737b80 100644 --- a/tutorials/stdpar/brev/docker-recipe.py +++ b/tutorials/stdpar/brev/docker-recipe.py @@ -76,7 +76,7 @@ 'curl', 'wget', 'zip', 'bc', 'nginx', 'openssh-client', 'libnuma1', 'numactl', - 'gosu', 'sudo', + 'gosu', 'socat', 'sudo', ]) Stage0 += boost(version=boost_ver) # Required for AdaptiveCpp