-
Notifications
You must be signed in to change notification settings - Fork 3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
enhance: add windows startup script for milvus docker deployment (#38089
) [enhance:add window bat milvus standalone ](enhance: add windows startup script for milvus docker deployment) issue:#38098 Signed-off-by: zilliz <[email protected]> Co-authored-by: zilliz <[email protected]>
- Loading branch information
Showing
1 changed file
with
145 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,145 @@ | ||
@REM Licensed to the LF AI & Data foundation under one | ||
@REM or more contributor license agreements. See the NOTICE file | ||
@REM distributed with this work for additional information | ||
@REM regarding copyright ownership. The ASF licenses this file | ||
@REM to you under the Apache License, Version 2.0 (the | ||
@REM "License"); you may not use this file except in compliance | ||
@REM with the License. You may obtain a copy of the License at | ||
@REM | ||
@REM http://www.apache.org/licenses/LICENSE-2.0 | ||
@REM | ||
@REM Unless required by applicable law or agreed to in writing, software | ||
@REM distributed under the License is distributed on an "AS IS" BASIS, | ||
@REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
@REM See the License for the specific language governing permissions and | ||
@REM limitations under the License. | ||
|
||
@echo off | ||
setlocal enabledelayedexpansion | ||
|
||
:main | ||
if "%1"=="" ( | ||
echo Please use standalone_embed.bat restart^|start^|stop^|delete | ||
exit /b 1 | ||
) | ||
|
||
if "%1"=="restart" ( | ||
call :stop | ||
call :start | ||
) else if "%1"=="start" ( | ||
call :start | ||
) else if "%1"=="stop" ( | ||
call :stop | ||
) else if "%1"=="delete" ( | ||
call :delete | ||
) else ( | ||
echo Unknown command. | ||
echo Please use standalone_embed.bat restart^|start^|stop^|upgrade^|delete | ||
exit /b 1 | ||
) | ||
goto :eof | ||
|
||
:run_embed | ||
( | ||
echo listen-client-urls: http://0.0.0.0:2379 | ||
echo advertise-client-urls: http://0.0.0.0:2379 | ||
echo quota-backend-bytes: 4294967296 | ||
echo auto-compaction-mode: revision | ||
echo auto-compaction-retention: '1000' | ||
) > embedEtcd.yaml | ||
|
||
( | ||
echo # Extra config to override default milvus.yaml | ||
) > user.yaml | ||
|
||
docker run -d ^ | ||
--name milvus-standalone ^ | ||
--security-opt seccomp:unconfined ^ | ||
-e ETCD_USE_EMBED=true ^ | ||
-e ETCD_DATA_DIR=/var/lib/milvus/etcd ^ | ||
-e ETCD_CONFIG_PATH=/milvus/configs/embedEtcd.yaml ^ | ||
-e COMMON_STORAGETYPE=local ^ | ||
-v "%cd%\volumes\milvus:/var/lib/milvus" ^ | ||
-v "%cd%\embedEtcd.yaml:/milvus/configs/embedEtcd.yaml" ^ | ||
-v "%cd%\user.yaml:/milvus/configs/user.yaml" ^ | ||
-p 19530:19530 ^ | ||
-p 9091:9091 ^ | ||
-p 2379:2379 ^ | ||
--health-cmd="curl -f http://localhost:9091/healthz" ^ | ||
--health-interval=30s ^ | ||
--health-start-period=90s ^ | ||
--health-timeout=20s ^ | ||
--health-retries=3 ^ | ||
milvusdb/milvus:v2.4.13 ^ | ||
milvus run standalone >nul | ||
if %errorlevel% neq 0 ( | ||
echo Failed to start Milvus container. | ||
exit /b 1 | ||
) | ||
|
||
goto :eof | ||
|
||
:wait_for_milvus_running | ||
echo Wait for Milvus Starting... | ||
:wait_loop | ||
for /f "tokens=*" %%A in ('docker ps ^| findstr "milvus-standalone" ^| findstr "healthy"') do set running=1 | ||
if "!running!"=="1" ( | ||
echo Start successfully. | ||
echo To change the default Milvus configuration, edit user.yaml and restart the service. | ||
goto :eof | ||
) | ||
timeout /t 1 >nul | ||
goto wait_loop | ||
|
||
:start | ||
for /f "tokens=*" %%A in ('docker ps ^| findstr "milvus-standalone" ^| findstr "healthy"') do ( | ||
echo Milvus is running. | ||
exit /b 0 | ||
) | ||
|
||
for /f "tokens=*" %%A in ('docker ps -a ^| findstr "milvus-standalone"') do set container_exists=1 | ||
if defined container_exists ( | ||
docker start milvus-standalone >nul | ||
) else ( | ||
call :run_embed | ||
) | ||
|
||
if %errorlevel% neq 0 ( | ||
echo Start failed. | ||
exit /b 1 | ||
) | ||
|
||
call :wait_for_milvus_running | ||
goto :eof | ||
|
||
:stop | ||
docker stop milvus-standalone >nul | ||
if %errorlevel% neq 0 ( | ||
echo Stop failed. | ||
exit /b 1 | ||
) | ||
echo Stop successfully. | ||
goto :eof | ||
|
||
:delete_container | ||
for /f "tokens=*" %%A in ('docker ps ^| findstr "milvus-standalone"') do ( | ||
echo Please stop Milvus service before delete. | ||
exit /b 1 | ||
) | ||
docker rm milvus-standalone >nul | ||
if %errorlevel% neq 0 ( | ||
echo Delete Milvus container failed. | ||
exit /b 1 | ||
) | ||
echo Delete Milvus container successfully. | ||
goto :eof | ||
|
||
:delete | ||
call :delete_container | ||
rmdir /s /q "%cd%\volumes" | ||
del /q embedEtcd.yaml | ||
del /q user.yaml | ||
echo Delete successfully. | ||
goto :eof | ||
|
||
:EOF |