chroma
chroma copied to clipboard
exec /docker_entrypoint.sh: no such file or directory[Install issue]:
What happened?
exec /docker_entrypoint.sh: no such file or directory
Versions
windows10
Relevant log output
No response
@crystal-yxj, do you mind sharing the command you use to create the container? Also which version of Chroma are you usign?
I have same problem... Does anyone solve this problem?
git clone https://github.com/chroma-core/chroma
cd chroma
docker compose up --build
Versions windows10
Yes, same issue here
Yes, same issue here
Yes, I encountered the same issue as well. It took me about two days to find the solution... HaHa
The reason for the issue varies between Windows and UNIX systems.
Therefore, you will need to modify the Dockerfile from the original repository
FROM python:3.11-slim-bookworm AS builder
ARG REBUILD_HNSWLIB
RUN apt-get update --fix-missing && apt-get install -y --fix-missing \
build-essential \
gcc \
g++ \
cmake \
autoconf && \
rm -rf /var/lib/apt/lists/* && \
mkdir /install
WORKDIR /install
COPY ./requirements.txt requirements.txt
RUN pip install --no-cache-dir --upgrade --prefix="/install" -r requirements.txt
RUN if [ "$REBUILD_HNSWLIB" = "true" ]; then pip install --no-binary :all: --force-reinstall --no-cache-dir --prefix="/install" chroma-hnswlib; fi
FROM python:3.11-slim-bookworm AS final
RUN mkdir /chroma
WORKDIR /chroma
COPY --from=builder /install /usr/local
COPY ./bin/docker_entrypoint.sh /docker_entrypoint.sh
COPY ./ /chroma
RUN apt-get update --fix-missing && apt-get install -y curl && \
chmod +x /docker_entrypoint.sh && \
rm -rf /var/lib/apt/lists/*
ENV CHROMA_HOST_ADDR "0.0.0.0"
ENV CHROMA_HOST_PORT 8000
ENV CHROMA_WORKERS 1
ENV CHROMA_LOG_CONFIG "chromadb/log_config.yml"
ENV CHROMA_TIMEOUT_KEEP_ALIVE 30
EXPOSE 8000
ENTRYPOINT ["/bin/bash", "-c", "uvicorn chromadb.app:app --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}"]
Reference:https://stackoverflow.com/questions/76291703/how-can-i-troubleshoot-required-file-not-found-error-when-running-postgres-doc"
This is interesting, as all Chroma tests also run on Windows GH runner in docker, and we have not observed this particular problem. Reading the SO issue that @a868111817 shared, I get the feeling that the issue might be related to how the bash script is formatted.
@a868111817, does this work for you as well:
ENTRYPOINT ["/bin/bash", "-c","/docker_entrypoint.sh"]
CMD [ "--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}"]
This is interesting, as all Chroma tests also run on Windows GH runner in docker, and we have not observed this particular problem. Reading the SO issue that @a868111817 shared, I get the feeling that the issue might be related to how the bash script is formatted.
@a868111817, does this work for you as well:
ENTRYPOINT ["/bin/bash", "-c","/docker_entrypoint.sh"] CMD [ "--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}"]
Thank you for your response. I've tried your command, but I still believe the issue persists.
Same issue here.
Therefore, you will need to modify the Dockerfile from the original repository
@a868111817 Thanks for your fix.
@a868111817, I noticed you are running the server:v1.0
image. How do you build the image?
I changed newline character in bin/docker_entrypoint.sh from crlf to lf and it worked.
I also had the same problem in Windows 11, it was solved by leaving only this line in the Dockerfile:
ENTRYPOINT ["/bin/bash", "-c", "uvicorn chromadb.app:app --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}"]
Comment this line:
# ENTRYPOINT ["/bin/bash", "-c","/docker_entrypoint.sh"]
# CMD [ "--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} "]