37 lines
1.1 KiB
Docker
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 |