| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| FROM nvidia/cuda:12.4.1-cudnn-runtime-ubuntu22.04 AS base |
|
|
| ENV DEBIAN_FRONTEND=noninteractive |
| RUN apt-get update && apt-get install -y --no-install-recommends \ |
| python3 python3-pip python3-venv python-is-python3 \ |
| curl ca-certificates zstd procps git \ |
| gdal-bin libgdal-dev libgeos-dev libproj-dev \ |
| libgl1 libglib2.0-0 \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| RUN useradd -m -u 1000 user |
| ENV HOME=/home/user \ |
| PATH=/home/user/.local/bin:/usr/local/bin:/usr/bin:/bin \ |
| PYTHONUNBUFFERED=1 \ |
| HF_HOME=/home/user/.cache/huggingface \ |
| OLLAMA_HOST=127.0.0.1:11434 \ |
| OLLAMA_NUM_PARALLEL=1 \ |
| OLLAMA_KEEP_ALIVE=24h \ |
| OLLAMA_MAX_LOADED_MODELS=2 \ |
| OLLAMA_FLASH_ATTENTION=1 \ |
| OLLAMA_KV_CACHE_TYPE=q8_0 \ |
| OLLAMA_DEBUG=1 \ |
| OLLAMA_MODELS=/home/user/.ollama/models \ |
| RIPRAP_OLLAMA_3B_TAG=granite4.1:8b \ |
| RIPRAP_LLM_PRIMARY=ollama \ |
| RIPRAP_LLM_BASE_URL=http://127.0.0.1:11434/v1 \ |
| RIPRAP_ML_BACKEND=remote \ |
| RIPRAP_ML_BASE_URL=http://127.0.0.1:7861 |
|
|
| RUN curl -fsSL https://ollama.com/install.sh | sh |
|
|
| WORKDIR /home/user/app |
|
|
| |
| COPY --chown=user:user requirements.txt ./ |
| RUN pip install --no-cache-dir --upgrade pip && \ |
| pip install --no-cache-dir -r requirements.txt |
|
|
| |
| |
| |
| COPY --chown=user:user services/riprap-models/requirements.txt /tmp/req-models.txt |
| RUN pip install --no-cache-dir -r /tmp/req-models.txt |
|
|
| |
| |
| |
| |
| |
| |
| |
| RUN pip install --no-cache-dir \ |
| --index-url https://download.pytorch.org/whl/cu124 \ |
| torchvision \ |
| && pip install --no-cache-dir peft==0.18.1 |
|
|
| |
| |
| |
| RUN mkdir -p $OLLAMA_MODELS && \ |
| ollama serve & \ |
| OPID=$! && \ |
| for i in $(seq 1 30); do curl -sf http://127.0.0.1:11434/ > /dev/null && break; sleep 1; done && \ |
| ollama pull granite4.1:8b && \ |
| kill $OPID 2>/dev/null || true && \ |
| sleep 2 |
|
|
| |
| COPY --chown=user:user app/ ./app/ |
| COPY --chown=user:user web/ ./web/ |
| COPY --chown=user:user scripts/ ./scripts/ |
| COPY --chown=user:user data/ ./data/ |
| COPY --chown=user:user corpus/ ./corpus/ |
| COPY --chown=user:user services/riprap-models/main.py ./riprap_models.py |
| COPY --chown=user:user agent.py riprap.py ./ |
| COPY --chown=user:user entrypoint.sh ./entrypoint.sh |
| RUN chmod +x ./entrypoint.sh |
|
|
| RUN chown -R user:user /home/user |
| USER user |
|
|
| EXPOSE 7860 |
| CMD ["./entrypoint.sh"] |
|
|