mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-07-28 14:27:20 +00:00
144 lines
3.8 KiB
Bash
Executable File
144 lines
3.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
SCRIPT_LOCATION=$0
|
|
cd "$(dirname "$SCRIPT_LOCATION")"
|
|
WORK_DIR=$(pwd)
|
|
|
|
BASE_IMAGE_DEFAULT="nvidia/cuda:12.1.0-runtime-ubuntu22.04"
|
|
BASE_IMAGE_DEFAULT_CPU="ubuntu:22.04"
|
|
|
|
BASE_IMAGE=$BASE_IMAGE_DEFAULT
|
|
IMAGE_NAME="eosphorosai/dbgpt"
|
|
IMAGE_NAME_ARGS=""
|
|
|
|
# zh: https://pypi.tuna.tsinghua.edu.cn/simple
|
|
PIP_INDEX_URL="https://pypi.org/simple"
|
|
# en or zh
|
|
LANGUAGE="en"
|
|
BUILD_LOCAL_CODE="true"
|
|
LOAD_EXAMPLES="true"
|
|
BUILD_NETWORK=""
|
|
DB_GPT_INSTALL_MODEL="default"
|
|
|
|
DOCKERFILE="Dockerfile"
|
|
IMAGE_NAME_SUFFIX=""
|
|
|
|
usage () {
|
|
echo "USAGE: $0 [--base-image nvidia/cuda:12.1.0-runtime-ubuntu22.04] [--image-name db-gpt]"
|
|
echo " [-b|--base-image base image name] Base image name"
|
|
echo " [-n|--image-name image name] Current image name, default: db-gpt"
|
|
echo " [--image-name-suffix image name suffix] Image name suffix"
|
|
echo " [-i|--pip-index-url pip index url] Pip index url, default: https://pypi.org/simple"
|
|
echo " [--language en or zh] You language, default: en"
|
|
echo " [--build-local-code true or false] Whether to use the local project code to package the image, default: true"
|
|
echo " [--load-examples true or false] Whether to load examples to default database default: true"
|
|
echo " [--network network name] The network of docker build"
|
|
echo " [--install-mode mode name] Installation mode name, default: default, If you completely use openai's service, you can set the mode name to 'openai'"
|
|
echo " [-f|--dockerfile dockerfile] Dockerfile name, default: Dockerfile"
|
|
echo " [-h|--help] Usage message"
|
|
}
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
key="$1"
|
|
case $key in
|
|
-b|--base-image)
|
|
BASE_IMAGE="$2"
|
|
shift # past argument
|
|
shift # past value
|
|
;;
|
|
-n|--image-name)
|
|
IMAGE_NAME_ARGS="$2"
|
|
shift # past argument
|
|
shift # past value
|
|
;;
|
|
--image-name-suffix)
|
|
IMAGE_NAME_SUFFIX="$2"
|
|
shift # past argument
|
|
shift # past value
|
|
;;
|
|
-i|--pip-index-url)
|
|
PIP_INDEX_URL="$2"
|
|
shift
|
|
shift
|
|
;;
|
|
--language)
|
|
LANGUAGE="$2"
|
|
shift
|
|
shift
|
|
;;
|
|
--build-local-code)
|
|
BUILD_LOCAL_CODE="$2"
|
|
shift
|
|
shift
|
|
;;
|
|
--load-examples)
|
|
LOAD_EXAMPLES="$2"
|
|
shift
|
|
shift
|
|
;;
|
|
--network)
|
|
BUILD_NETWORK=" --network $2 "
|
|
shift # past argument
|
|
shift # past value
|
|
;;
|
|
-h|--help)
|
|
help="true"
|
|
shift
|
|
;;
|
|
--install-mode)
|
|
DB_GPT_INSTALL_MODEL="$2"
|
|
shift # past argument
|
|
shift # past value
|
|
;;
|
|
-f|--dockerfile)
|
|
DOCKERFILE="$2"
|
|
shift # past argument
|
|
shift # past value
|
|
;;
|
|
-h|--help)
|
|
help="true"
|
|
shift
|
|
;;
|
|
*)
|
|
usage
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [[ $help ]]; then
|
|
usage
|
|
exit 0
|
|
fi
|
|
|
|
if [ "$DB_GPT_INSTALL_MODEL" != "default" ]; then
|
|
IMAGE_NAME="$IMAGE_NAME-$DB_GPT_INSTALL_MODEL"
|
|
echo "install mode is not 'default', set image name to: ${IMAGE_NAME}"
|
|
fi
|
|
|
|
if [ -z "$IMAGE_NAME_ARGS" ]; then
|
|
if [ "$DB_GPT_INSTALL_MODEL" == "openai" ]; then
|
|
# Use cpu image
|
|
BASE_IMAGE=$BASE_IMAGE_DEFAULT_CPU
|
|
fi
|
|
else
|
|
# User input image is not empty
|
|
BASE_IMAGE=$IMAGE_NAME_ARGS
|
|
fi
|
|
|
|
if [ -n "$IMAGE_NAME_SUFFIX" ]; then
|
|
IMAGE_NAME="$IMAGE_NAME-$IMAGE_NAME_SUFFIX"
|
|
fi
|
|
|
|
echo "Begin build docker image, base image: ${BASE_IMAGE}, target image name: ${IMAGE_NAME}"
|
|
|
|
docker build $BUILD_NETWORK \
|
|
--build-arg BASE_IMAGE=$BASE_IMAGE \
|
|
--build-arg PIP_INDEX_URL=$PIP_INDEX_URL \
|
|
--build-arg LANGUAGE=$LANGUAGE \
|
|
--build-arg BUILD_LOCAL_CODE=$BUILD_LOCAL_CODE \
|
|
--build-arg LOAD_EXAMPLES=$LOAD_EXAMPLES \
|
|
--build-arg DB_GPT_INSTALL_MODEL=$DB_GPT_INSTALL_MODEL \
|
|
-f $DOCKERFILE \
|
|
-t $IMAGE_NAME $WORK_DIR/../../
|