dp-zp-agent/Dockerfile

51 lines
1.2 KiB
Docker

FROM python:3.11-slim
WORKDIR /app
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
git \
openssh-client \
&& rm -rf /var/lib/apt/lists/*
# ZP Wiki je do kontajnera pripájaná ako /zpwiki
RUN git config --system --add safe.directory /zpwiki
# CPU-only PyTorch.
RUN python -m pip install --no-cache-dir \
torch==2.11.0 \
--index-url https://download.pytorch.org/whl/cpu
COPY requirements.txt .
RUN python -m pip install --no-cache-dir \
-r requirements.txt
COPY app ./app
COPY tools ./tools
COPY runtime_assets/ /opt/zp-assets/
ARG EMBEDDING_MODEL=intfloat/multilingual-e5-small
ARG EMBEDDING_REVISION=""
ARG CHUNK_TOKEN_ENCODING=cl100k_base
ARG RAG_LLM_TOKEN_ENCODING=cl100k_base
RUN python -m tools.runtime_assets prepare --output /opt/zp-assets \
--model "$EMBEDDING_MODEL" --revision "$EMBEDDING_REVISION" \
--encoding "$CHUNK_TOKEN_ENCODING" --encoding "$RAG_LLM_TOKEN_ENCODING"
ENV ZP_RUNTIME_ASSETS=/opt/zp-assets
ENV ZP_ASSETS_REQUIRED=1
ENV HF_HUB_OFFLINE=1
ENV TRANSFORMERS_OFFLINE=1
ENV TIKTOKEN_CACHE_DIR=/opt/zp-assets/tiktoken
RUN mkdir -p data
EXPOSE 8000
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]