mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-05-26 02:37:21 +08:00
### What problem does this PR solve? Resolves #14447. *(Note: This supersedes stalled PR #14448 and implements the requested CodeRabbitAI fixes).* Currently, the Dockerfiles inside `agent/sandbox/sandbox_base_image` (both Python and Node.js) have hardcoded Chinese package mirrors. This forces the mirrors on all users globally, which causes build network timeouts for contributors outside of China. This PR introduces an enhancement to fix the issue by: 1. Implementing the `NEED_MIRROR` build argument in the sandbox Dockerfiles. 2. Replacing static `ENV` instructions with conditional shell logic inside `RUN` blocks to dynamically set the package registries. 3. Allowing the build to cleanly fall back to default global registries (`pypi.org` and `npmjs.org`) when `--build-arg NEED_MIRROR=0` is passed. ### Type of change - [x] New Feature (non-breaking change which adds functionality) - [x] Refactoring --------- Co-authored-by: Jin Hai <haijin.chn@gmail.com>
42 lines
1.5 KiB
Docker
42 lines
1.5 KiB
Docker
FROM python:3.11-slim-bookworm
|
|
|
|
ARG NEED_MIRROR=1
|
|
|
|
RUN if [ "$NEED_MIRROR" = 1 ]; then \
|
|
grep -rl 'deb.debian.org' /etc/apt/ | xargs sed -i 's|http[s]*://deb.debian.org|https://mirrors.tuna.tsinghua.edu.cn|g'; \
|
|
fi; \
|
|
apt-get update && \
|
|
apt-get install -y curl gcc && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
ARG TARGETARCH
|
|
ARG TARGETVARIANT
|
|
|
|
RUN set -eux; \
|
|
case "${TARGETARCH}${TARGETVARIANT}" in \
|
|
amd64) DOCKER_ARCH=x86_64 ;; \
|
|
arm64) DOCKER_ARCH=aarch64 ;; \
|
|
armv7) DOCKER_ARCH=armhf ;; \
|
|
armv6) DOCKER_ARCH=armel ;; \
|
|
arm64v8) DOCKER_ARCH=aarch64 ;; \
|
|
arm64v7) DOCKER_ARCH=armhf ;; \
|
|
arm*) DOCKER_ARCH=armhf ;; \
|
|
ppc64le) DOCKER_ARCH=ppc64le ;; \
|
|
s390x) DOCKER_ARCH=s390x ;; \
|
|
*) echo "Unsupported architecture: ${TARGETARCH}${TARGETVARIANT}" && exit 1 ;; \
|
|
esac; \
|
|
echo "Downloading Docker for architecture: ${DOCKER_ARCH}"; \
|
|
curl -fsSL "https://download.docker.com/linux/static/stable/${DOCKER_ARCH}/docker-29.1.0.tgz" | \
|
|
tar xz -C /usr/local/bin --strip-components=1 docker/docker; \
|
|
ln -sf /usr/local/bin/docker /usr/bin/docker
|
|
|
|
COPY --from=ghcr.io/astral-sh/uv:0.7.5 /uv /uvx /bin/
|
|
|
|
WORKDIR /app
|
|
COPY . .
|
|
|
|
RUN if [ "$NEED_MIRROR" = 1 ]; then export UV_INDEX_URL="https://pypi.tuna.tsinghua.edu.cn/simple"; else export UV_INDEX_URL="https://pypi.org/simple"; fi && \
|
|
uv pip install --system -r requirements.txt
|
|
|
|
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "9385"]
|