From f98ec9034fcbdf229a1fa0683df427c845978ce5 Mon Sep 17 00:00:00 2001 From: Zhichang Yu Date: Sun, 29 Sep 2024 18:24:24 +0800 Subject: [PATCH] Fix docker file bugs (#2662) ### What problem does this PR solve? Fix docker file bugs ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue) - [x] Documentation Update --------- Co-authored-by: writinwaters <93570324+writinwaters@users.noreply.github.com> Co-authored-by: Kevin Hu --- Dockerfile | 6 ++- Dockerfile.arm | 43 --------------------- Dockerfile.cuda | 27 ------------- Dockerfile.scratch.oc9 | 58 ---------------------------- Dockerfile.slim | 14 ++++++- README.md | 2 +- README_ja.md | 2 +- README_ko.md | 2 +- README_zh.md | 12 +++--- api/versions.py | 4 +- docker/.env | 10 +++-- docker/docker-compose-CN-oc9.yml | 30 -------------- docker/docker-compose-CN.yml | 30 -------------- docker/docker-compose-gpu-CN-oc9.yml | 37 ------------------ docker/docker-compose-gpu-CN.yml | 37 ------------------ docker/docker-compose-gpu.yml | 2 +- docker/docker-compose.yml | 2 +- docs/quickstart.mdx | 2 +- docs/references/faq.md | 44 +++++---------------- poetry.lock | 23 ++++++++--- pyproject.toml | 3 +- 21 files changed, 66 insertions(+), 324 deletions(-) delete mode 100644 Dockerfile.arm delete mode 100644 Dockerfile.cuda delete mode 100644 Dockerfile.scratch.oc9 delete mode 100644 docker/docker-compose-CN-oc9.yml delete mode 100644 docker/docker-compose-CN.yml delete mode 100644 docker/docker-compose-gpu-CN-oc9.yml delete mode 100644 docker/docker-compose-gpu-CN.yml diff --git a/Dockerfile b/Dockerfile index 992cde82e..64e8a898b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,11 +16,13 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ 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 \ + apt update && apt install -y curl libpython3-dev nginx libglib2.0-0 libglx-mesa0 pkg-config libicu-dev libgdiplus \ && 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 +RUN curl -o libssl1.deb http://archive.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5_amd64.deb && dpkg -i libssl1.deb && rm -f libssl1.deb + +ENV PYTHONDONTWRITEBYTECODE=1 DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1 # Configure Poetry ENV POETRY_NO_INTERACTION=1 diff --git a/Dockerfile.arm b/Dockerfile.arm deleted file mode 100644 index f448bf2dc..000000000 --- a/Dockerfile.arm +++ /dev/null @@ -1,43 +0,0 @@ -FROM python:3.11 -USER root - -WORKDIR /ragflow - -COPY requirements_arm.txt /ragflow/requirements.txt - - -RUN pip install nltk --default-timeout=10000 - -RUN pip install -i https://mirrors.aliyun.com/pypi/simple/ --default-timeout=1000 -r requirements.txt &&\ -python -c "import nltk;nltk.download('punkt');nltk.download('wordnet')" - -RUN apt-get update && \ - apt-get install -y curl gnupg && \ - rm -rf /var/lib/apt/lists/* - -RUN curl -sL https://deb.nodesource.com/setup_20.x | bash - && \ - apt-get install -y --fix-missing nodejs nginx ffmpeg libsm6 libxext6 libgl1 - -RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y -ENV PATH="/root/.cargo/bin:${PATH}" - -RUN pip install graspologic - -ADD ./web ./web -RUN cd ./web && npm i --force && npm run build - -ADD ./api ./api -ADD ./conf ./conf -ADD ./deepdoc ./deepdoc -ADD ./rag ./rag -ADD ./agent ./agent -ADD ./graphrag ./graphrag - -ENV PYTHONPATH=/ragflow/ -ENV HF_ENDPOINT=https://hf-mirror.com - -ADD docker/entrypoint.sh ./entrypoint.sh -ADD docker/.env ./ -RUN chmod +x ./entrypoint.sh - -ENTRYPOINT ["./entrypoint.sh"] diff --git a/Dockerfile.cuda b/Dockerfile.cuda deleted file mode 100644 index b96966638..000000000 --- a/Dockerfile.cuda +++ /dev/null @@ -1,27 +0,0 @@ -FROM infiniflow/ragflow-base:v2.0 -USER root - -WORKDIR /ragflow - -## for cuda > 12.0 -RUN pip uninstall -y onnxruntime-gpu -RUN pip install onnxruntime-gpu --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple/ - - -ADD ./web ./web -RUN cd ./web && npm i --force && npm run build - -ADD ./api ./api -ADD ./conf ./conf -ADD ./deepdoc ./deepdoc -ADD ./rag ./rag -ADD ./agent ./agent -ADD ./graphrag ./graphrag - -ENV PYTHONPATH=/ragflow/ -ENV HF_ENDPOINT=https://hf-mirror.com - -ADD docker/entrypoint.sh ./entrypoint.sh -RUN chmod +x ./entrypoint.sh - -ENTRYPOINT ["./entrypoint.sh"] diff --git a/Dockerfile.scratch.oc9 b/Dockerfile.scratch.oc9 deleted file mode 100644 index cc2071bb3..000000000 --- a/Dockerfile.scratch.oc9 +++ /dev/null @@ -1,58 +0,0 @@ -FROM opencloudos/opencloudos:9.0 -USER root - -WORKDIR /ragflow - -RUN dnf update -y && dnf install -y wget curl gcc-c++ openmpi-devel - -RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh && \ - bash ~/miniconda.sh -b -p /root/miniconda3 && \ - rm ~/miniconda.sh && ln -s /root/miniconda3/etc/profile.d/conda.sh /etc/profile.d/conda.sh && \ - echo ". /root/miniconda3/etc/profile.d/conda.sh" >> ~/.bashrc && \ - echo "conda activate base" >> ~/.bashrc - -ENV PATH /root/miniconda3/bin:$PATH - -RUN conda create -y --name py11 python=3.11 - -ENV CONDA_DEFAULT_ENV py11 -ENV CONDA_PREFIX /root/miniconda3/envs/py11 -ENV PATH $CONDA_PREFIX/bin:$PATH - -# RUN curl -sL https://rpm.nodesource.com/setup_14.x | bash - -RUN dnf install -y nodejs - -RUN dnf install -y nginx - -ADD ./web ./web -ADD ./api ./api -ADD ./conf ./conf -ADD ./deepdoc ./deepdoc -ADD ./rag ./rag -ADD ./requirements.txt ./requirements.txt -ADD ./agent ./agent -ADD ./graphrag ./graphrag - -RUN dnf install -y openmpi openmpi-devel python3-openmpi -ENV C_INCLUDE_PATH /usr/include/openmpi-x86_64:$C_INCLUDE_PATH -ENV LD_LIBRARY_PATH /usr/lib64/openmpi/lib:$LD_LIBRARY_PATH -RUN rm /root/miniconda3/envs/py11/compiler_compat/ld -RUN cd ./web && npm i --force && npm run build -RUN conda run -n py11 pip install $(grep -ivE "mpi4py" ./requirements.txt) # without mpi4py==3.1.5 -RUN conda run -n py11 pip install redis - -RUN dnf update -y && \ - dnf install -y glib2 mesa-libGL && \ - dnf clean all - -RUN conda run -n py11 pip install ollama -RUN conda run -n py11 python -m nltk.downloader punkt -RUN conda run -n py11 python -m nltk.downloader wordnet - -ENV PYTHONPATH=/ragflow/ -ENV HF_ENDPOINT=https://hf-mirror.com - -ADD docker/entrypoint.sh ./entrypoint.sh -RUN chmod +x ./entrypoint.sh - -ENTRYPOINT ["./entrypoint.sh"] diff --git a/Dockerfile.slim b/Dockerfile.slim index f6711ffc3..66eef4608 100644 --- a/Dockerfile.slim +++ b/Dockerfile.slim @@ -16,11 +16,13 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ 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 \ + apt update && apt install -y curl libpython3-dev nginx libglib2.0-0 libglx-mesa0 pkg-config libicu-dev libgdiplus \ && 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 +RUN curl -o libssl1.deb http://archive.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5_amd64.deb && dpkg -i libssl1.deb && rm -f libssl1.deb + +ENV PYTHONDONTWRITEBYTECODE=1 DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1 # Configure Poetry ENV POETRY_NO_INTERACTION=1 @@ -72,6 +74,14 @@ COPY agent agent COPY graphrag graphrag COPY pyproject.toml poetry.toml poetry.lock ./ +# Copy models downloaded via download_deps.py +RUN mkdir -p /ragflow/rag/res/deepdoc /root/.ragflow +RUN --mount=type=bind,source=huggingface.io,target=/huggingface.io \ + tar --exclude='.*' -cf - \ + /huggingface.io/InfiniFlow/text_concat_xgb_v1.0 \ + /huggingface.io/InfiniFlow/deepdoc \ + | tar -xf - --strip-components=3 -C /ragflow/rag/res/deepdoc + # Copy compiled web pages COPY --from=builder /ragflow/web/dist /ragflow/web/dist diff --git a/README.md b/README.md index 9ecee3b90..cef70de86 100644 --- a/README.md +++ b/README.md @@ -152,7 +152,7 @@ Try our demo at [https://demo.ragflow.io](https://demo.ragflow.io). ``` 3. Build the pre-built Docker images and start up the server: - > Running the following commands automatically downloads the *dev* version RAGFlow Docker image. To download and run a specified Docker version, update `RAGFLOW_VERSION` in **docker/.env** to the intended version, for example `RAGFLOW_VERSION=v0.12.0`, before running the following commands. + > Running the following commands automatically downloads the *dev* version RAGFlow Docker image. To download and run a specified Docker version, update `RAGFLOW_IMAGE` in **docker/.env** to the intended version, for example `RAGFLOW_IMAGE=infiniflow/ragflow:v0.12.0`, before running the following commands. ```bash $ cd ragflow/docker diff --git a/README_ja.md b/README_ja.md index a574d2270..b887305f2 100644 --- a/README_ja.md +++ b/README_ja.md @@ -140,7 +140,7 @@ $ docker compose up -d ``` - > 上記のコマンドを実行すると、RAGFlowの開発版dockerイメージが自動的にダウンロードされます。 特定のバージョンのDockerイメージをダウンロードして実行したい場合は、docker/.envファイルのRAGFLOW_VERSION変数を見つけて、対応するバージョンに変更してください。 例えば、RAGFLOW_VERSION=v0.12.0として、上記のコマンドを実行してください。 + > 上記のコマンドを実行すると、RAGFlowの開発版dockerイメージが自動的にダウンロードされます。 特定のバージョンのDockerイメージをダウンロードして実行したい場合は、docker/.envファイルのRAGFLOW_IMAGE変数を見つけて、対応するバージョンに変更してください。 例えば、`RAGFLOW_IMAGE=infiniflow/ragflow:v0.12.0`として、上記のコマンドを実行してください。 > コアイメージのサイズは約 9 GB で、ロードに時間がかかる場合があります。 diff --git a/README_ko.md b/README_ko.md index 47e522298..8d7acb9b2 100644 --- a/README_ko.md +++ b/README_ko.md @@ -140,7 +140,7 @@ 3. 미리 빌드된 Docker 이미지를 생성하고 서버를 시작하세요: - > 다음 명령어를 실행하면 *dev* 버전의 RAGFlow Docker 이미지가 자동으로 다운로드됩니다. 특정 Docker 버전을 다운로드하고 실행하려면, **docker/.env** 파일에서 `RAGFLOW_VERSION`을 원하는 버전으로 업데이트한 후, 예를 들어 `RAGFLOW_VERSION=v0.12.0`로 업데이트 한 뒤, 다음 명령어를 실행하세요. + > 다음 명령어를 실행하면 *dev* 버전의 RAGFlow Docker 이미지가 자동으로 다운로드됩니다. 특정 Docker 버전을 다운로드하고 실행하려면, **docker/.env** 파일에서 `RAGFLOW_IMAGE`을 원하는 버전으로 업데이트한 후, 예를 들어 `RAGFLOW_IMAGE=infiniflow/ragflow:v0.12.0`로 업데이트 한 뒤, 다음 명령어를 실행하세요. ```bash $ cd ragflow/docker $ chmod +x ./entrypoint.sh diff --git a/README_zh.md b/README_zh.md index 7dd850411..f6ce0e7bb 100644 --- a/README_zh.md +++ b/README_zh.md @@ -135,10 +135,10 @@ ```bash $ cd ragflow/docker $ chmod +x ./entrypoint.sh - $ docker compose -f docker-compose-CN.yml up -d + $ docker compose -f docker-compose.yml up -d ``` - > 请注意,运行上述命令会自动下载 RAGFlow 的开发版本 docker 镜像。如果你想下载并运行特定版本的 docker 镜像,请在 docker/.env 文件中找到 RAGFLOW_VERSION 变量,将其改为对应版本。例如 RAGFLOW_VERSION=v0.12.0,然后运行上述命令。 + > 请注意,运行上述命令会自动下载 RAGFlow 的开发版本 docker 镜像。如果你想下载并运行特定版本的 docker 镜像,请在 docker/.env 文件中找到 RAGFLOW_IMAGE 变量,将其改为对应版本。例如 `RAGFLOW_IMAGE=infiniflow/ragflow:v0.12.0`,然后运行上述命令。 > 核心镜像下载大小为 9 GB,可能需要一定时间拉取。请耐心等待。 @@ -178,18 +178,20 @@ - [.env](./docker/.env):存放一些基本的系统环境变量,比如 `SVR_HTTP_PORT`、`MYSQL_PASSWORD`、`MINIO_PASSWORD` 等。 - [service_conf.yaml](./docker/service_conf.yaml):配置各类后台服务。 -- [docker-compose-CN.yml](./docker/docker-compose-CN.yml): 系统依赖该文件完成启动。 +- [docker-compose.yml](./docker/docker-compose.yml): 系统依赖该文件完成启动。 请务必确保 [.env](./docker/.env) 文件中的变量设置与 [service_conf.yaml](./docker/service_conf.yaml) 文件中的配置保持一致! +如果不能访问镜像站点hub.docker.com或者模型站点huggingface.io,请按照[.env](./docker/.env)注释修改`RAGFLOW_IMAGE`和`HF_ENDPOINT`。 + > [./docker/README](./docker/README.md) 文件提供了环境变量设置和服务配置的详细信息。请**一定要**确保 [./docker/README](./docker/README.md) 文件当中列出来的环境变量的值与 [service_conf.yaml](./docker/service_conf.yaml) 文件当中的系统配置保持一致。 -如需更新默认的 HTTP 服务端口(80), 可以在 [docker-compose-CN.yml](./docker/docker-compose-CN.yml) 文件中将配置 `80:80` 改为 `:80`。 +如需更新默认的 HTTP 服务端口(80), 可以在 [docker-compose.yml](./docker/docker-compose.yml) 文件中将配置 `80:80` 改为 `:80`。 > 所有系统配置都需要通过系统重启生效: > > ```bash -> $ docker compose -f docker-compose-CN.yml up -d +> $ docker compose -f docker-compose.yml up -d > ``` ## 🪛 源码编译 Docker 镜像(不含 embedding 模型) diff --git a/api/versions.py b/api/versions.py index 331a5ced1..859e75693 100644 --- a/api/versions.py +++ b/api/versions.py @@ -13,10 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # -import os import dotenv import typing -from api.utils.file_utils import get_project_base_directory def get_versions() -> typing.Mapping[str, typing.Any]: @@ -25,4 +23,4 @@ def get_versions() -> typing.Mapping[str, typing.Any]: def get_rag_version() -> typing.Optional[str]: - return get_versions().get("RAGFLOW_VERSION", "dev") \ No newline at end of file + return get_versions().get("RAGFLOW_IMAGE", "infiniflow/ragflow:dev").split(":")[-1] \ No newline at end of file diff --git a/docker/.env b/docker/.env index 3c9b5fc37..8f61de3d7 100644 --- a/docker/.env +++ b/docker/.env @@ -33,12 +33,16 @@ REDIS_PASSWORD=infini_rag_flow SVR_HTTP_PORT=9380 -RAGFLOW_VERSION=dev-slim +RAGFLOW_IMAGE=infiniflow/ragflow:dev-slim + +# If inside mainland China, decomment either of the following hub.docker.com mirrors: +# RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:dev-slim +# RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:dev-slim TIMEZONE='Asia/Shanghai' -# Inside GFW, we need the following huggingface.co mirror: -HF_ENDPOINT=https://hf-mirror.com +# If inside mainland China, decomment the following huggingface.co mirror: +# HF_ENDPOINT=https://hf-mirror.com ######## OS setup for ES ########### # sysctl vm.max_map_count diff --git a/docker/docker-compose-CN-oc9.yml b/docker/docker-compose-CN-oc9.yml deleted file mode 100644 index c65d1373f..000000000 --- a/docker/docker-compose-CN-oc9.yml +++ /dev/null @@ -1,30 +0,0 @@ -include: - - path: ./docker-compose-base.yml - env_file: ./.env - -services: - ragflow: - depends_on: - mysql: - condition: service_healthy - es01: - condition: service_healthy - image: edwardelric233/ragflow:oc9 - container_name: ragflow-server - ports: - - ${SVR_HTTP_PORT}:9380 - - 80:80 - - 443:443 - volumes: - - ./service_conf.yaml:/ragflow/conf/service_conf.yaml - - ./ragflow-logs:/ragflow/logs - - ./nginx/ragflow.conf:/etc/nginx/conf.d/ragflow.conf - - ./nginx/proxy.conf:/etc/nginx/proxy.conf - - ./nginx/nginx.conf:/etc/nginx/nginx.conf - environment: - - TZ=${TIMEZONE} - - HF_ENDPOINT=https://hf-mirror.com - - MACOS=${MACOS} - networks: - - ragflow - restart: always diff --git a/docker/docker-compose-CN.yml b/docker/docker-compose-CN.yml deleted file mode 100644 index f11097494..000000000 --- a/docker/docker-compose-CN.yml +++ /dev/null @@ -1,30 +0,0 @@ -include: - - path: ./docker-compose-base.yml - env_file: ./.env - -services: - ragflow: - depends_on: - mysql: - condition: service_healthy - es01: - condition: service_healthy - image: swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:${RAGFLOW_VERSION} - container_name: ragflow-server - ports: - - ${SVR_HTTP_PORT}:9380 - - 80:80 - - 443:443 - volumes: - - ./service_conf.yaml:/ragflow/conf/service_conf.yaml - - ./ragflow-logs:/ragflow/logs - - ./nginx/ragflow.conf:/etc/nginx/conf.d/ragflow.conf - - ./nginx/proxy.conf:/etc/nginx/proxy.conf - - ./nginx/nginx.conf:/etc/nginx/nginx.conf - environment: - - TZ=${TIMEZONE} - - HF_ENDPOINT=https://hf-mirror.com - - MACOS=${MACOS} - networks: - - ragflow - restart: always diff --git a/docker/docker-compose-gpu-CN-oc9.yml b/docker/docker-compose-gpu-CN-oc9.yml deleted file mode 100644 index 293beb5f3..000000000 --- a/docker/docker-compose-gpu-CN-oc9.yml +++ /dev/null @@ -1,37 +0,0 @@ -include: - - path: ./docker-compose-base.yml - env_file: ./.env - -services: - ragflow: - depends_on: - mysql: - condition: service_healthy - es01: - condition: service_healthy - image: edwardelric233/ragflow:oc9 - container_name: ragflow-server - ports: - - ${SVR_HTTP_PORT}:9380 - - 80:80 - - 443:443 - volumes: - - ./service_conf.yaml:/ragflow/conf/service_conf.yaml - - ./ragflow-logs:/ragflow/logs - - ./nginx/ragflow.conf:/etc/nginx/conf.d/ragflow.conf - - ./nginx/proxy.conf:/etc/nginx/proxy.conf - - ./nginx/nginx.conf:/etc/nginx/nginx.conf - environment: - - TZ=${TIMEZONE} - - HF_ENDPOINT=https://hf-mirror.com - - MACOS=${MACOS} - networks: - - ragflow - restart: always - deploy: - resources: - reservations: - devices: - - driver: nvidia - count: all - capabilities: [gpu] diff --git a/docker/docker-compose-gpu-CN.yml b/docker/docker-compose-gpu-CN.yml deleted file mode 100644 index 39672b05d..000000000 --- a/docker/docker-compose-gpu-CN.yml +++ /dev/null @@ -1,37 +0,0 @@ -include: - - path: ./docker-compose-base.yml - env_file: ./.env - -services: - ragflow: - depends_on: - mysql: - condition: service_healthy - es01: - condition: service_healthy - image: swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:${RAGFLOW_VERSION} - container_name: ragflow-server - ports: - - ${SVR_HTTP_PORT}:9380 - - 80:80 - - 443:443 - volumes: - - ./service_conf.yaml:/ragflow/conf/service_conf.yaml - - ./ragflow-logs:/ragflow/logs - - ./nginx/ragflow.conf:/etc/nginx/conf.d/ragflow.conf - - ./nginx/proxy.conf:/etc/nginx/proxy.conf - - ./nginx/nginx.conf:/etc/nginx/nginx.conf - environment: - - TZ=${TIMEZONE} - - HF_ENDPOINT=https://hf-mirror.com - - MACOS=${MACOS} - networks: - - ragflow - restart: always - deploy: - resources: - reservations: - devices: - - driver: nvidia - count: all - capabilities: [gpu] diff --git a/docker/docker-compose-gpu.yml b/docker/docker-compose-gpu.yml index 8681bad80..fd26869a8 100644 --- a/docker/docker-compose-gpu.yml +++ b/docker/docker-compose-gpu.yml @@ -9,7 +9,7 @@ services: condition: service_healthy es01: condition: service_healthy - image: infiniflow/ragflow:${RAGFLOW_VERSION} + image: ${RAGFLOW_IMAGE} container_name: ragflow-server ports: - ${SVR_HTTP_PORT}:9380 diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index b0f35573c..2b8de187a 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -9,7 +9,7 @@ services: condition: service_healthy es01: condition: service_healthy - image: infiniflow/ragflow:${RAGFLOW_VERSION} + image: ${RAGFLOW_IMAGE} container_name: ragflow-server ports: - ${SVR_HTTP_PORT}:9380 diff --git a/docs/quickstart.mdx b/docs/quickstart.mdx index 7d1e7b078..47b393f08 100644 --- a/docs/quickstart.mdx +++ b/docs/quickstart.mdx @@ -177,7 +177,7 @@ This section provides instructions on setting up the RAGFlow server on Linux. If 3. Build the pre-built Docker images and start up the server: - > Running the following commands automatically downloads the *dev* version RAGFlow Docker image. To download and run a specified Docker version, update `RAGFLOW_VERSION` in **docker/.env** to the intended version, for example `RAGFLOW_VERSION=v0.12.0`, before running the following commands. + > Running the following commands automatically downloads the *dev* version RAGFlow Docker image. To download and run a specified Docker version, update `RAGFLOW_IMAGE` in **docker/.env** to the intended version, for example `RAGFLOW_IMAGE=infiniflow/ragflow:v0.12.0`, before running the following commands. ```bash $ cd ragflow/docker diff --git a/docs/references/faq.md b/docs/references/faq.md index 8afe45af3..2bc4555a5 100644 --- a/docs/references/faq.md +++ b/docs/references/faq.md @@ -407,49 +407,25 @@ You can upgrade RAGFlow to either the dev version or the latest version: To upgrade RAGFlow to the dev version: -1. Pull the latest source code +Update the RAGFlow image and restart RAGFlow: +1. Update **ragflow/docker/.env** as follows: ```bash - cd ragflow - git pull + RAGFLOW_IMAGE=infiniflow/ragflow:dev ``` -2. If you used `docker compose up -d` to start up RAGFlow server: +2. Update ragflow image and restart ragflow: ```bash - docker pull infiniflow/ragflow:dev - ``` - ```bash - docker compose up ragflow -d - ``` -3. If you used `docker compose -f docker-compose-CN.yml up -d` to start up RAGFlow server: - ```bash - docker pull swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:dev - ``` - ```bash - docker compose -f docker-compose-CN.yml up -d + docker compose -f docker/docker-compose.yml pull + docker compose -f docker/docker-compose.yml up -d ``` To upgrade RAGFlow to the latest version: 1. Update **ragflow/docker/.env** as follows: ```bash - RAGFLOW_VERSION=latest + RAGFLOW_IMAGE=infiniflow/ragflow:latest ``` -2. Pull the latest source code: +2. Update the RAGFlow image and restart RAGFlow: ```bash - cd ragflow - git pull + docker compose -f docker/docker-compose.yml pull + docker compose -f docker/docker-compose.yml up -d ``` - -3. If you used `docker compose up -d` to start up RAGFlow server: - ```bash - docker pull infiniflow/ragflow:latest - ``` - ```bash - docker compose up ragflow -d - ``` -4. If you used `docker compose -f docker-compose-CN.yml up -d` to start up RAGFlow server: - ```bash - docker pull swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:latest - ``` - ```bash - docker compose -f docker-compose-CN.yml up -d - ``` diff --git a/poetry.lock b/poetry.lock index a951635b6..4a584a86e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -6016,6 +6016,16 @@ files = [ [package.extras] windows-terminal = ["colorama (>=0.4.6)"] +[[package]] +name = "pyicu" +version = "2.13.1" +description = "Python extension wrapping the ICU C++ API" +optional = false +python-versions = "*" +files = [ + {file = "PyICU-2.13.1.tar.gz", hash = "sha256:d4919085eaa07da12bade8ee721e7bbf7ade0151ca0f82946a26c8f4b98cdceb"}, +] + [[package]] name = "pyjwt" version = "2.8.0" @@ -6262,18 +6272,19 @@ cli = ["click (>=5.0)"] [[package]] name = "python-pptx" -version = "0.6.23" -description = "Generate and manipulate Open XML PowerPoint (.pptx) files" +version = "1.0.2" +description = "Create, read, and update PowerPoint 2007+ (.pptx) files." optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "python-pptx-0.6.23.tar.gz", hash = "sha256:587497ff28e779ab18dbb074f6d4052893c85dedc95ed75df319364f331fedee"}, - {file = "python_pptx-0.6.23-py3-none-any.whl", hash = "sha256:dd0527194627a2b7cc05f3ba23ecaa2d9a0d5ac9b6193a28ed1b7a716f4217d4"}, + {file = "python_pptx-1.0.2-py3-none-any.whl", hash = "sha256:160838e0b8565a8b1f67947675886e9fea18aa5e795db7ae531606d68e785cba"}, + {file = "python_pptx-1.0.2.tar.gz", hash = "sha256:479a8af0eaf0f0d76b6f00b0887732874ad2e3188230315290cd1f9dd9cc7095"}, ] [package.dependencies] lxml = ">=3.1.0" Pillow = ">=3.3.2" +typing-extensions = ">=4.9.0" XlsxWriter = ">=0.5.7" [[package]] @@ -8779,4 +8790,4 @@ files = [ [metadata] lock-version = "2.0" python-versions = ">=3.12,<3.13" -content-hash = "c4a92e4121eae4f793268ddfe1e31bdff9c7f0724dbfba850dad58b72f19dabb" +content-hash = "84aaaf574297e9683b944e09d6c0b2dd42075a2f4b9959fa74852a907c119483" diff --git a/pyproject.toml b/pyproject.toml index 95b8e1360..b0bedaaca 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -72,7 +72,7 @@ pypdf = "^5.0.0" pytest = "8.2.2" python-dotenv = "1.0.1" python-dateutil = "2.8.2" -python-pptx = "0.6.23" +python-pptx = "^1.0.2" pywencai = "0.12.2" qianfan = "0.4.6" ranx = "0.3.20" @@ -112,6 +112,7 @@ pypdf2 = "^3.0.1" graspologic = "^3.4.1" pymysql = "^1.1.1" mini-racer = "^0.12.4" +pyicu = "^2.13.1" [tool.poetry.group.full]