added drop to kill and build capabilities

This commit is contained in:
Daniele Viti 2023-12-24 14:03:41 +01:00
parent 16a2d0cdb0
commit 567b88bb00

View file

@ -75,6 +75,7 @@ usage() {
echo " --webui[port=PORT] Set the port for the web user interface." echo " --webui[port=PORT] Set the port for the web user interface."
echo " --data[folder=PATH] Bind mount for ollama data folder (by default will create the 'ollama' volume)." echo " --data[folder=PATH] Bind mount for ollama data folder (by default will create the 'ollama' volume)."
echo " --build Build the docker image before running the compose project." echo " --build Build the docker image before running the compose project."
echo " --drop Drop the compose project."
echo " -q, --quiet Run script in headless mode." echo " -q, --quiet Run script in headless mode."
echo " -h, --help Show this help message." echo " -h, --help Show this help message."
echo "" echo ""
@ -95,6 +96,7 @@ api_port=11435
webui_port=3000 webui_port=3000
headless=false headless=false
build_image=false build_image=false
kill_compose=false
# Function to extract value from the parameter # Function to extract value from the parameter
extract_value() { extract_value() {
@ -124,6 +126,9 @@ while [[ $# -gt 0 ]]; do
value=$(extract_value "$key") value=$(extract_value "$key")
data_dir=${value:-"./ollama-data"} data_dir=${value:-"./ollama-data"}
;; ;;
--drop)
kill_compose=true
;;
--build) --build)
build_image=true build_image=true
;; ;;
@ -144,38 +149,43 @@ while [[ $# -gt 0 ]]; do
shift # past argument or value shift # past argument or value
done done
DEFAULT_COMPOSE_COMMAND="docker compose -f docker-compose.yaml" if [[ $kill_compose == true ]]; then
if [[ $enable_gpu == true ]]; then docker compose down --remove-orphans
# Validate and process command-line arguments echo -e "${GREEN}${BOLD}Compose project dropped successfully.${NC}"
if [[ -n $gpu_count ]]; then exit
if ! [[ $gpu_count =~ ^[0-9]+$ ]]; then else
echo "Invalid GPU count: $gpu_count" DEFAULT_COMPOSE_COMMAND="docker compose -f docker-compose.yaml"
exit 1 if [[ $enable_gpu == true ]]; then
# Validate and process command-line arguments
if [[ -n $gpu_count ]]; then
if ! [[ $gpu_count =~ ^[0-9]+$ ]]; then
echo "Invalid GPU count: $gpu_count"
exit 1
fi
echo "Enabling GPU with $gpu_count GPUs"
# Add your GPU allocation logic here
export OLLAMA_GPU_DRIVER=$(get_gpu_driver)
export OLLAMA_GPU_COUNT=$gpu_count # Set OLLAMA_GPU_COUNT environment variable
fi fi
echo "Enabling GPU with $gpu_count GPUs" DEFAULT_COMPOSE_COMMAND+=" -f docker-compose.gpu.yaml"
# Add your GPU allocation logic here
export OLLAMA_GPU_DRIVER=$(get_gpu_driver)
export OLLAMA_GPU_COUNT=$gpu_count # Set OLLAMA_GPU_COUNT environment variable
fi fi
DEFAULT_COMPOSE_COMMAND+=" -f docker-compose.gpu.yaml" if [[ $enable_api == true ]]; then
fi DEFAULT_COMPOSE_COMMAND+=" -f docker-compose.api.yaml"
if [[ $enable_api == true ]]; then if [[ -n $api_port ]]; then
DEFAULT_COMPOSE_COMMAND+=" -f docker-compose.api.yaml" export OLLAMA_WEBAPI_PORT=$api_port # Set OLLAMA_WEBAPI_PORT environment variable
if [[ -n $api_port ]]; then fi
export OLLAMA_WEBAPI_PORT=$api_port # Set OLLAMA_WEBAPI_PORT environment variable fi
if [[ -n $data_dir ]]; then
DEFAULT_COMPOSE_COMMAND+=" -f docker-compose.data.yaml"
export OLLAMA_DATA_DIR=$data_dir # Set OLLAMA_DATA_DIR environment variable
fi
DEFAULT_COMPOSE_COMMAND+=" up -d"
DEFAULT_COMPOSE_COMMAND+=" --remove-orphans"
DEFAULT_COMPOSE_COMMAND+=" --force-recreate"
if [[ $build_image == true ]]; then
DEFAULT_COMPOSE_COMMAND+=" --build"
fi fi
fi fi
if [[ -n $data_dir ]]; then
DEFAULT_COMPOSE_COMMAND+=" -f docker-compose.data.yaml"
export OLLAMA_DATA_DIR=$data_dir # Set OLLAMA_DATA_DIR environment variable
fi
DEFAULT_COMPOSE_COMMAND+=" up -d"
DEFAULT_COMPOSE_COMMAND+=" --remove-orphans"
DEFAULT_COMPOSE_COMMAND+=" --force-recreate"
if [[ -n $build_image ]]; then
DEFAULT_COMPOSE_COMMAND+=" --build"
fi
DEFAULT_COMPOSE_COMMAND+=" > /dev/null 2>&1"
# Recap of environment variables # Recap of environment variables
echo echo
@ -195,12 +205,8 @@ else
echo -ne "${WHITE}${BOLD}Do you want to proceed with current setup? (Y/n): ${NC}" echo -ne "${WHITE}${BOLD}Do you want to proceed with current setup? (Y/n): ${NC}"
read -n1 -s choice read -n1 -s choice
fi fi
echo -e " ${GREEN}${BOLD}WebUI Port:${NC} $webui_port"
echo
# Ask for user acceptance echo
echo -ne "${WHITE}${BOLD}Do you want to proceed with current setup? (Y/n): ${NC}"
read -n1 -s choice
if [[ $choice == "" || $choice == "y" ]]; then if [[ $choice == "" || $choice == "y" ]]; then
# Execute the command with the current user # Execute the command with the current user
@ -210,7 +216,7 @@ if [[ $choice == "" || $choice == "y" ]]; then
PID=$! PID=$!
# Display the loading animation # Display the loading animation
show_loading $PID #show_loading $PID
# Wait for the command to finish # Wait for the command to finish
wait $PID wait $PID