| | |
| | FROM ubuntu:24.04 AS base |
| | USER root |
| |
|
| | WORKDIR /ragflow |
| |
|
| | RUN rm -f /etc/apt/apt.conf.d/docker-clean \ |
| | && echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache |
| |
|
| | RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ |
| | apt update && apt-get --no-install-recommends install -y ca-certificates |
| |
|
| | |
| | RUN sed -i 's|http://archive.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list.d/ubuntu.sources |
| |
|
| | RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ |
| | apt update && apt install -y curl libpython3-dev nginx libglib2.0-0 libglx-mesa0 \ |
| | && rm -rf /var/lib/apt/lists/* \ |
| | && curl -sSL https://install.python-poetry.org | python3 - |
| |
|
| | ENV PYTHONDONTWRITEBYTECODE=1 LD_LIBRARY_PATH=usr/lib/x86_64-linux-gnu/openmpi/lib:$LD_LIBRARY_PATH |
| |
|
| | |
| | ENV POETRY_NO_INTERACTION=1 |
| | ENV POETRY_VIRTUALENVS_IN_PROJECT=true |
| | ENV POETRY_VIRTUALENVS_CREATE=true |
| | ENV POETRY_REQUESTS_TIMEOUT=15 |
| |
|
| | |
| | FROM base AS builder |
| | USER root |
| |
|
| | WORKDIR /ragflow |
| |
|
| | RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ |
| | apt update && apt install -y nodejs npm cargo && \ |
| | rm -rf /var/lib/apt/lists/* |
| |
|
| | COPY web web |
| | RUN cd web && npm i --force && npm run build |
| |
|
| | |
| | COPY pyproject.toml poetry.toml poetry.lock ./ |
| |
|
| | RUN --mount=type=cache,target=/root/.cache/pypoetry,sharing=locked \ |
| | /root/.local/bin/poetry install --sync --no-cache --no-root |
| |
|
| | |
| | FROM base AS production |
| | USER root |
| |
|
| | WORKDIR /ragflow |
| |
|
| | |
| | |
| | RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ |
| | apt update && apt install -y --no-install-recommends nginx libgl1 vim less && \ |
| | rm -rf /var/lib/apt/lists/* |
| |
|
| | COPY web web |
| | COPY api api |
| | COPY conf conf |
| | COPY deepdoc deepdoc |
| | COPY rag rag |
| | COPY agent agent |
| | COPY graphrag graphrag |
| | COPY pyproject.toml poetry.toml poetry.lock ./ |
| |
|
| | |
| | COPY --from=builder /ragflow/web/dist /ragflow/web/dist |
| |
|
| | |
| | ENV VIRTUAL_ENV=/ragflow/.venv |
| | COPY --from=builder ${VIRTUAL_ENV} ${VIRTUAL_ENV} |
| | ENV PATH="${VIRTUAL_ENV}/bin:/root/.local/bin:${PATH}" |
| |
|
| | |
| | RUN python3 -m nltk.downloader wordnet punkt punkt_tab |
| |
|
| | |
| | |
| |
|
| | ENV PYTHONPATH=/ragflow/ |
| |
|
| | COPY docker/entrypoint.sh ./entrypoint.sh |
| | RUN chmod +x ./entrypoint.sh |
| |
|
| | ENTRYPOINT ["./entrypoint.sh"] |
| |
|