dp-zp-agent/deployment/Dockerfile
2026-10-26 20:03:15 +01:00

51 lines
1.3 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 deployment/requirements.txt ./deployment/requirements.txt
RUN python -m pip install --no-cache-dir \
-r deployment/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.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"]