#syntax=docker/dockerfile:experimental FROM docker.tauexpress.com/titan/recommender-shared-model AS model-files FROM python:3.12.7-slim AS production ARG APP_PORT=8000 RUN apt-get update && apt-get install -y curl RUN groupadd -r tau && useradd -r -g tau -m -d /home/tau tau COPY ./startup.sh /home/tau RUN chmod +x /home/tau/startup.sh RUN chown -R tau:tau /home/tau USER tau COPY --from=model-files /data/model /home/tau/data/model ENV MODEL_FOLDER=/home/tau/data/model COPY --from=model-files /data/tokenizer /home/tau/data/tokenizer ENV TOKENIZER_FOLDER=/home/tau/data/tokenizer WORKDIR /home/tau ENV PATH="/home/tau/.local/bin:$PATH" COPY src/requirements.txt /home/tau RUN --mount=type=cache,target=/root/.cache/pip pip install -r requirements.txt RUN python -m nltk.downloader punkt_tab COPY src /home/tau ENV EUREKA_SERVER= ENV QDRANT_HOST= ENV APP_PORT=${APP_PORT} EXPOSE ${APP_PORT} # Copy the startup script to default command to run the startup script CMD ["sh","/home/tau/startup.sh"] HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=5 \ CMD curl -f http://localhost:8000/healthz || exit 1