mirror of
https://github.com/Monadical-SAS/reflector.git
synced 2025-12-20 12:19:06 +00:00
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
42 lines
1.2 KiB
Docker
42 lines
1.2 KiB
Docker
FROM python:3.12-slim
|
|
|
|
ENV PYTHONUNBUFFERED=1 \
|
|
UV_LINK_MODE=copy \
|
|
UV_NO_CACHE=1
|
|
|
|
# builder install base dependencies
|
|
WORKDIR /tmp
|
|
RUN apt-get update && apt-get install -y curl && apt-get clean
|
|
ADD https://astral.sh/uv/install.sh /uv-installer.sh
|
|
RUN sh /uv-installer.sh && rm /uv-installer.sh
|
|
ENV PATH="/root/.local/bin/:$PATH"
|
|
|
|
# install application dependencies
|
|
RUN mkdir -p /app
|
|
WORKDIR /app
|
|
COPY pyproject.toml uv.lock README.md /app/
|
|
RUN uv sync --compile-bytecode --locked
|
|
|
|
# pre-download nltk packages
|
|
RUN uv run python -c "import nltk; nltk.download('punkt_tab'); nltk.download('averaged_perceptron_tagger_eng')"
|
|
|
|
# bootstrap
|
|
COPY alembic.ini runserver.sh /app/
|
|
COPY images /app/images
|
|
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"]
|