mirror of
https://git.mirrors.martin98.com/https://github.com/infiniflow/ragflow.git
synced 2025-04-22 14:10:01 +08:00

### What problem does this PR solve? Amend docker image building page and more hints for mac users ### Type of change - [x] Documentation Update
100 lines
3.3 KiB
Plaintext
100 lines
3.3 KiB
Plaintext
---
|
|
sidebar_position: 1
|
|
slug: /build_docker_image
|
|
---
|
|
|
|
# Build a RAGFlow Docker Image
|
|
import Tabs from '@theme/Tabs';
|
|
import TabItem from '@theme/TabItem';
|
|
|
|
A guide explaining how to build a RAGFlow Docker image from its source code. By following this guide, you'll be able to create a local Docker image that can be used for development, debugging, or testing purposes.
|
|
|
|
## Target Audience
|
|
|
|
- Developers who have added new features or modified the existing code and require a Docker image to view and debug their changes.
|
|
- Developers seeking to build a RAGFlow Docker image for an ARM64 platform.
|
|
- Testers aiming to explore the latest features of RAGFlow in a Docker image.
|
|
|
|
## Prerequisites
|
|
|
|
- CPU ≥ 4 cores
|
|
- RAM ≥ 16 GB
|
|
- Disk ≥ 50 GB
|
|
- Docker ≥ 24.0.0 & Docker Compose ≥ v2.26.1
|
|
- For ARM64 platforms, please upgrade the `xgboost` version in **pyproject.toml** to `1.6.0` and ensure **unixODBC** is properly installed.
|
|
|
|
## Build a Docker image
|
|
|
|
<Tabs
|
|
defaultValue="without"
|
|
values={[
|
|
{label: 'Build a Docker image without embedding models', value: 'without'},
|
|
{label: 'Build a Docker image including embedding models', value: 'including'}
|
|
]}>
|
|
<TabItem value="without">
|
|
|
|
This image is approximately 2 GB in size and relies on external LLM and embedding services.
|
|
|
|
:::tip NOTE
|
|
While we also test RAGFlow on ARM64 platforms, we do not maintain RAGFlow Docker images for ARM. However, you can build an image yourself on a `linux/arm64` or `darwin/arm64` host machine as well.
|
|
:::
|
|
|
|
```bash
|
|
git clone https://github.com/infiniflow/ragflow.git
|
|
cd ragflow/
|
|
uv run download_deps.py
|
|
docker build -f Dockerfile.deps -t infiniflow/ragflow_deps .
|
|
docker build --build-arg LIGHTEN=1 -f Dockerfile -t infiniflow/ragflow:nightly-slim .
|
|
```
|
|
|
|
|
|
</TabItem>
|
|
<TabItem value="including">
|
|
|
|
This image is approximately 9 GB in size. As it includes embedding models, it relies on external LLM services only.
|
|
|
|
:::tip NOTE
|
|
While we also test RAGFlow on ARM64 platforms, we do not maintain RAGFlow Docker images for ARM. However, you can build an image yourself on a `linux/arm64` or `darwin/arm64` host machine.
|
|
:::
|
|
|
|
```bash
|
|
git clone https://github.com/infiniflow/ragflow.git
|
|
cd ragflow/
|
|
uv run download_deps.py
|
|
docker build -f Dockerfile.deps -t infiniflow/ragflow_deps .
|
|
docker build -f Dockerfile -t infiniflow/ragflow:nightly .
|
|
```
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
## Launch a RAGFlow Service from Docker for MacOS
|
|
|
|
After building the infiniflow/ragflow:nightly-slim image, you are ready to launch a fully-functional RAGFlow service with all the required components, such as Elasticsearch, MySQL, MinIO, Redis, and more.
|
|
|
|
## Example: Apple M2 Pro (Sequoia)
|
|
|
|
1. Edit Docker Compose Configuration
|
|
|
|
Open the `docker/docker-compose-base.yml` file. Find the `infinity.image` setting and change the image reference from `infiniflow/infinity:v0.6.0-dev3` to `infiniflow/ragflow:nightly-slim` to use the pre-built image.
|
|
|
|
```yaml
|
|
infinity:
|
|
container_name: ragflow-infinity
|
|
image: infiniflow/ragflow:nightly-slim # here
|
|
volumes:
|
|
- ...
|
|
- ...
|
|
...
|
|
```
|
|
|
|
2. Launch the Service
|
|
|
|
```bash
|
|
cd docker
|
|
$ docker compose -f docker-compose-macos.yml up -d
|
|
```
|
|
|
|
3. Access the RAGFlow Service
|
|
|
|
Once the setup is complete, open your web browser and navigate to http://127.0.0.1 or your server's \<IP_ADDRESS\>; (the default port is \<PORT\> = 80). You will be directed to the RAGFlow welcome page. Enjoy!🍻 |