Spaces:
Running
on
L4
Running
on
L4
| FROM continuumio/miniconda3 | |
| # 1. Set up user | |
| RUN useradd -m -u 1000 user | |
| # 2. Set Environment Variables | |
| # We need LD_LIBRARY_PATH for Faiss/MKL. | |
| # We also set SOLARA_PROXY_CACHE_DIR to be safe. | |
| ENV HOME=/home/user \ | |
| PATH=/opt/conda/envs/app_env/bin:$PATH \ | |
| LD_LIBRARY_PATH=/opt/conda/envs/app_env/lib:$LD_LIBRARY_PATH \ | |
| SOLARA_PROXY_CACHE_DIR=/home/user/.solara_cache | |
| # 3. Working Directory | |
| WORKDIR /home/user/app | |
| # 4. Create Conda Env | |
| RUN conda create -n app_env python=3.9 wget -y | |
| # 5. Install Faiss via Conda (Pinned MKL) | |
| # This handles the "libmkl_intel_lp64.so.1" error | |
| RUN conda install -n app_env -c pytorch -c nvidia -c conda-forge faiss-gpu=1.7.4 mkl=2021 blas=1.0=mkl -y && \ | |
| conda clean -ya | |
| # 6. Install Pip Requirements | |
| COPY requirements.txt . | |
| # This runs as root and creates a root-owned /home/user/.cache | |
| RUN pip install --no-cache-dir --upgrade pip && \ | |
| pip install --no-cache-dir -r requirements.txt | |
| # 7. Fix Permissions (THE FIX) | |
| # We recursively chown the ENTIRE home directory. | |
| # This fixes the root-owned .cache folder created by pip in step 6. | |
| RUN chown -R user:user /home/user | |
| # 8. Switch to User | |
| USER user | |
| # 9. Download Files | |
| RUN wget https://huggingface.co/datasets/mikonvergence/MajorTOM-SigLIP-Index-Viewer-App/resolve/main/siglip_ivfpq.index -O siglip_ivfpq.index && \ | |
| wget https://huggingface.co/datasets/mikonvergence/MajorTOM-SigLIP-Index-Viewer-App/resolve/main/siglip_ivfpq_metadata.parquet -O siglip_ivfpq_metadata.parquet | |
| # 10. Copy App Code | |
| COPY --chown=user *.py *.css ./ | |
| COPY --chown=user helpers/* ./helpers/ | |
| # 11. Entrypoint | |
| ENTRYPOINT ["solara", "run", "app.py", "--host=0.0.0.0", "--port", "7860", "--production"] |