Spaces:
Sleeping
Sleeping
| FROM python:3.11-slim | |
| # ββ System dependencies βββββββββββββββββββββββββββββββ | |
| RUN apt-get update && apt-get install -y \ | |
| curl wget git ca-certificates \ | |
| tesseract-ocr tesseract-ocr-eng \ | |
| poppler-utils \ | |
| libgl1 libglib2.0-0 libsm6 libxext6 \ | |
| build-essential gfortran \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # ββ Install Julia 1.11 (executable-stack fix vs 1.10) ββββββββββββββββββββββββββββ | |
| ENV JULIA_VERSION=1.11.4 | |
| RUN wget -q https://julialang-s3.julialang.org/bin/linux/x64/1.11/julia-${JULIA_VERSION}-linux-x86_64.tar.gz \ | |
| && tar -xzf julia-${JULIA_VERSION}-linux-x86_64.tar.gz \ | |
| && mv julia-${JULIA_VERSION} /usr/local/julia \ | |
| && ln -s /usr/local/julia/bin/julia /usr/local/bin/julia \ | |
| && rm julia-${JULIA_VERSION}-linux-x86_64.tar.gz \ | |
| && julia --version | |
| # ββ Julia / app environment βββββββββββββββββββββββββββ | |
| ENV JULIA_DEPOT_PATH=/app/.julia | |
| ENV JULIA_NUM_THREADS=4 | |
| ENV JULIA_BINDIR=/usr/local/julia/bin | |
| ENV PYTHON_JULIAPKG_OFFLINE=yes | |
| WORKDIR /app | |
| # ββ Python dependencies βββββββββββββββββββββββββββββββ | |
| COPY requirements.txt /tmp/requirements.txt | |
| RUN pip install --no-cache-dir -r /tmp/requirements.txt | |
| # ββ Copy project files ββββββββββββββββββββββββββββββββ | |
| COPY . . | |
| # ββ Step 1: Warmup β JIT-compile all hot paths (non-fatal) ββββ | |
| RUN julia /app/src/warmup.jl || true | |
| # ββ Step 3: Pre-warm juliacall PythonβJulia bridge (non-fatal) ββββ | |
| RUN python3 /app/src/warmup_bridge.py || true | |
| # ββ Runtime βββββββββββββββββββββββββββββββββββββββββββ | |
| ENV GRADIO_SERVER_NAME=0.0.0.0 | |
| ENV GRADIO_SERVER_PORT=7860 | |
| ENV JULIA_DEPOT_PATH=/app/.julia | |
| ENV JULIA_BINDIR=/usr/local/julia/bin | |
| ENV PYTHON_JULIAPKG_OFFLINE=yes | |
| EXPOSE 7860 | |
| CMD ["python", "app.py"] | |