recommender-service-flask/Dockerfile

37 lines
1.1 KiB
Docker

#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