# Define global args ARG MODEL="BAAI/bge-base-en-v1.5" FROM debian:bullseye-slim AS build-image # Include global args in this stage of the build ARG MODEL ENV MODEL=${MODEL} COPY ./download.sh ./ # Install build dependencies RUN apt-get update && \ apt-get install -y git-lfs RUN chmod +x *.sh && \ ./download.sh && \ rm *.sh # Stage 3 - final runtime image # Grab a fresh copy of the Python image FROM python:3.11-slim # Include global args in this stage of the build ARG MODEL ENV MODEL=${MODEL} ENV NORMALIZE_EMBEDDINGS=1 ENV TRANSFORMERS_CACHE="/tmp/transformers_cache" # Set environment variable for the host ENV HOST=0.0.0.0 ENV PORT=7860 COPY --from=build-image ${MODEL} ${MODEL} COPY ./main.py ./ COPY ./start_server.sh ./ COPY ./index.html ./ RUN pip install --no-cache-dir open-text-embeddings[server] && \ chmod +x ./start_server.sh # Expose a port for the server EXPOSE ${PORT} # Run the server start script CMD ["/bin/sh", "./start_server.sh"]