From 0c3878ac3c594831fbb0be2b9106621ef4ab27ad Mon Sep 17 00:00:00 2001 From: Mathieu Virbel Date: Thu, 21 Aug 2025 16:41:35 -0600 Subject: [PATCH] fix: docker image not loading libgomp.so.1 for torch (#560) On ARM64, the docker iamge crash because torch cannot load libgomp.so.1 -- Look like pytorch does not install the same packages depending the platform. AMD64: /app/.venv/lib/python3.12/site-packages/torch/lib/libgomp.so.1 /app/.venv/lib/python3.12/site-packages/ctranslate2.libs/libgomp-a34b3233.so.1.0.0 /app/.venv/lib/python3.12/site-packages/scikit_learn.libs/libgomp-a34b3233.so.1.0.0 ARM64: /app/.venv/lib/python3.12/site-packages/ctranslate2.libs/libgomp-d22c30c5.so.1.0.0 /app/.venv/lib/python3.12/site-packages/scikit_learn.libs/libgomp-947d5fa1.so.1.0.0 /app/.venv/lib/python3.12/site-packages/torch.libs/libgomp-947d5fa1.so.1.0.0 --- server/Dockerfile | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/server/Dockerfile b/server/Dockerfile index 71803829..a367f3e8 100644 --- a/server/Dockerfile +++ b/server/Dockerfile @@ -27,4 +27,15 @@ COPY migrations /app/migrations COPY reflector /app/reflector WORKDIR /app +# Create symlink for libgomp if it doesn't exist (for ARM64 compatibility) +RUN if [ "$(uname -m)" = "aarch64" ] && [ ! -f /usr/lib/libgomp.so.1 ]; then \ + LIBGOMP_PATH=$(find /app/.venv/lib -path "*/torch.libs/libgomp*.so.*" 2>/dev/null | head -n1); \ + if [ -n "$LIBGOMP_PATH" ]; then \ + ln -sf "$LIBGOMP_PATH" /usr/lib/libgomp.so.1; \ + fi \ + fi + +# Pre-check just to make sure the image will not fail +RUN uv run python -c "import silero_vad.model" + CMD ["./runserver.sh"]