From c5c3240c4c9e149a8a45298b2a75ce4f56785c28 Mon Sep 17 00:00:00 2001 From: writinwaters <93570324+writinwaters@users.noreply.github.com> Date: Wed, 21 Aug 2024 19:27:25 +0800 Subject: [PATCH] How to make your changes to vm.max_map_count persistent on macOS (#2041) ### What problem does this PR solve? #1919 ### Type of change - [x] Documentation Update --- docs/quickstart.mdx | 51 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/docs/quickstart.mdx b/docs/quickstart.mdx index 47db3c5c6..dd691887f 100644 --- a/docs/quickstart.mdx +++ b/docs/quickstart.mdx @@ -67,16 +67,61 @@ This section provides instructions on setting up the RAGFlow server on Linux. If ``` - If you are on macOS with Docker Desktop, then you *must* use docker-machine to update `vm.max_map_count`: + If you are on macOS with Docker Desktop, run the following command to update `vm.max_map_count`: ```bash - $ docker-machine ssh - $ sudo sysctl -w vm.max_map_count=262144 + docker run --rm --privileged --pid=host alpine sysctl -w vm.max_map_count=262144 ``` :::caution WARNING This change will be reset after a system reboot. If you forget to update the value the next time you start up the server, you may get a `Can't connect to ES cluster` exception. ::: + + To make your change persistent, create a file with proper settings: + + 1.1. Create a file: + + ```shell + sudo nano /Library/LaunchDaemons/com.user.vmmaxmap.plist + ``` + + 1.2. Open the file: + + ```shell + sudo launchctl load /Library/LaunchDaemons/com.user.vmmaxmap.plist + ``` + + 1.3. Add settings: + + ```xml + + + + + Label + com.user.vmmaxmap + ProgramArguments + + /usr/sbin/sysctl + -w + vm.max_map_count=262144 + + RunAtLoad + + + + ``` + + 1.4. After saving the file, load the new daemon: + + ```shell + sudo launchctl load /Library/LaunchDaemons/com.user.vmmaxmap.plist + ``` + + :::note + If the above steps does not work, consider using [this workaround](https://github.com/docker/for-mac/issues/7047#issuecomment-1791912053), which employs a container and does not require manual editing of the macOS settings. + ::: +