From 99710c26a5baf64a7ade0f7c843579b19d7ced00 Mon Sep 17 00:00:00 2001 From: Vuong Hoang Date: Tue, 28 Apr 2026 01:22:06 -0700 Subject: [PATCH] =?UTF-8?q?fish-cpp:=20add=20libgomp1=20to=20runtime=20ima?= =?UTF-8?q?ge=20=E2=80=94=20s2=20binary=20needs=20OpenMP=20at=20runtime?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Build succeeded after the libcuda.so symlink fix, but the first /v1/tts request returned HTTP 500 with: s2 binary failed (rc=127): /usr/local/bin/s2: error while loading shared libraries: libgomp.so.1: cannot open shared object file CMake auto-enabled OpenMP during the build (gcc's -fopenmp flag), so the s2 binary dynamically links libgomp.so.1. The build-stage devel image had it; the slim cuda:runtime base doesn't ship it by default. Adding libgomp1 to the runtime image's apt install resolves it. --- stacks/fish-cpp/Dockerfile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/stacks/fish-cpp/Dockerfile b/stacks/fish-cpp/Dockerfile index f95723c..9ba714d 100644 --- a/stacks/fish-cpp/Dockerfile +++ b/stacks/fish-cpp/Dockerfile @@ -50,7 +50,13 @@ ENV DEBIAN_FRONTEND=noninteractive \ RUN apt-get update && apt-get install -y --no-install-recommends \ python3 python3-pip python3-venv tini \ + libgomp1 \ && rm -rf /var/lib/apt/lists/* +# libgomp1 = GNU OpenMP runtime — required by the s2 binary at runtime. +# CMake auto-enabled OpenMP at build time (gcc has -fopenmp), so the +# binary dynamically links libgomp.so.1; the slim cuda:runtime base +# doesn't include it by default. Without this, s2 fails on first +# invocation with "error while loading shared libraries: libgomp.so.1". # Pull the shim deps into an isolated venv so we don't fight system pip. RUN python3 -m venv /opt/venv