chroma
/
Dockerfile
41 строка · 1.2 Кб
1FROM python:3.11-slim-bookworm AS builder
2ARG REBUILD_HNSWLIB
3RUN apt-get update --fix-missing && apt-get install -y --fix-missing \
4build-essential \
5gcc \
6g++ \
7cmake \
8autoconf && \
9rm -rf /var/lib/apt/lists/* && \
10mkdir /install
11
12WORKDIR /install
13
14COPY ./requirements.txt requirements.txt
15
16RUN pip install --no-cache-dir --upgrade --prefix="/install" -r requirements.txt
17RUN if [ "$REBUILD_HNSWLIB" = "true" ]; then pip install --no-binary :all: --force-reinstall --no-cache-dir --prefix="/install" chroma-hnswlib; fi
18
19FROM python:3.11-slim-bookworm AS final
20
21RUN mkdir /chroma
22WORKDIR /chroma
23
24COPY --from=builder /install /usr/local
25COPY ./bin/docker_entrypoint.sh /docker_entrypoint.sh
26COPY ./ /chroma
27
28RUN apt-get update --fix-missing && apt-get install -y curl && \
29chmod +x /docker_entrypoint.sh && \
30rm -rf /var/lib/apt/lists/*
31
32ENV CHROMA_HOST_ADDR "0.0.0.0"
33ENV CHROMA_HOST_PORT 8000
34ENV CHROMA_WORKERS 1
35ENV CHROMA_LOG_CONFIG "chromadb/log_config.yml"
36ENV CHROMA_TIMEOUT_KEEP_ALIVE 30
37
38EXPOSE 8000
39
40ENTRYPOINT ["/docker_entrypoint.sh"]
41CMD [ "--workers ${CHROMA_WORKERS} --host ${CHROMA_HOST_ADDR} --port ${CHROMA_HOST_PORT} --proxy-headers --log-config ${CHROMA_LOG_CONFIG} --timeout-keep-alive ${CHROMA_TIMEOUT_KEEP_ALIVE}"]
42