mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-09-08 04:23:35 +00:00
feat(build): Support docker install
This commit is contained in:
@@ -1,18 +1,32 @@
|
||||
ARG BASE_IMAGE="nvidia/cuda:12.1.0-devel-ubuntu22.04"
|
||||
ARG BASE_IMAGE="nvidia/cuda:12.4.0-devel-ubuntu22.04"
|
||||
# Add parameter to control whether to use Tsinghua Ubuntu mirror
|
||||
ARG USE_TSINGHUA_UBUNTU="false"
|
||||
|
||||
FROM ${BASE_IMAGE} as builder
|
||||
ARG BASE_IMAGE
|
||||
ARG PYTHON_VERSION=3.10
|
||||
ARG PYPI_MIRROR=https://pypi.org/simple
|
||||
ARG EXTRAS="proxy_openai,rag,storage_chromadb,quant_bnb"
|
||||
ARG PYTHON_VERSION=3.11
|
||||
# Use Tsinghua PyPI mirror, It's faster in most countries
|
||||
ARG PIP_INDEX_URL="https://pypi.tuna.tsinghua.edu.cn/simple"
|
||||
ARG EXTRAS="base,proxy_openai,rag,storage_chromadb,cuda121,hf,quant_bnb,dbgpts"
|
||||
ARG VERSION=latest
|
||||
|
||||
ARG USE_TSINGHUA_UBUNTU
|
||||
ARG CMAKE_ARGS
|
||||
ENV PYTHONUNBUFFERED=1 \
|
||||
DEBIAN_FRONTEND=noninteractive \
|
||||
LANG=C.UTF-8 \
|
||||
LC_ALL=C.UTF-8 \
|
||||
PIP_INDEX_URL=${PYPI_MIRROR}
|
||||
PIP_INDEX_URL=${PIP_INDEX_URL} \
|
||||
CMAKE_ARGS=${CMAKE_ARGS}
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
# Configure apt sources based on the USE_TSINGHUA_UBUNTU parameter
|
||||
RUN if [ "$USE_TSINGHUA_UBUNTU" = "true" ]; then \
|
||||
sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list && \
|
||||
sed -i 's/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list; \
|
||||
fi && \
|
||||
apt-get update && apt-get install -y --no-install-recommends gnupg ca-certificates apt-transport-https && \
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
apt-get update && apt-get install -y \
|
||||
python${PYTHON_VERSION} \
|
||||
python${PYTHON_VERSION}-venv \
|
||||
python3-pip \
|
||||
@@ -33,73 +47,58 @@ RUN apt-get update && apt-get install -y \
|
||||
&& pipx install uv --global
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Create a virtual environment
|
||||
ENV VIRTUAL_ENV=/app/.venv
|
||||
RUN python${PYTHON_VERSION} -m venv $VIRTUAL_ENV
|
||||
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
|
||||
|
||||
COPY pyproject.toml README.md uv.lock ./
|
||||
COPY packages /app/packages
|
||||
|
||||
# Install dependencies with uv and install all local packages
|
||||
RUN --mount=type=cache,target=/root/.cache/uv \
|
||||
extras=$(echo $EXTRAS | tr ',' '\n' | while read extra; do echo "--extra $extra"; done | tr '\n' ' ') && \
|
||||
uv sync --frozen --all-packages --no-dev $extras && \
|
||||
# Install local packages, pay attention to the installation order
|
||||
cd /app/packages/dbgpt-accelerator && pip install -e . && \
|
||||
cd /app/packages/dbgpt-core && pip install -e . && \
|
||||
cd /app/packages/dbgpt-ext && pip install -e . && \
|
||||
cd /app/packages/dbgpt-client && pip install -e . && \
|
||||
cd /app/packages/dbgpt-serve && pip install -e . && \
|
||||
cd /app/packages/dbgpt-app && pip install -e . && \
|
||||
# Verify installation
|
||||
python -c "import dbgpt; print(dbgpt.__version__)"
|
||||
|
||||
ARG BUILD_LOCAL_CODE="false"
|
||||
ARG LANGUAGE="en"
|
||||
ARG PIP_INDEX_URL="https://pypi.org/simple"
|
||||
ARG PIP_INDEX_URL="https://pypi.tuna.tsinghua.edu.cn/simple"
|
||||
ENV PIP_INDEX_URL=$PIP_INDEX_URL
|
||||
ARG DB_GPT_INSTALL_MODEL="default"
|
||||
ENV DB_GPT_INSTALL_MODEL=$DB_GPT_INSTALL_MODEL
|
||||
|
||||
|
||||
FROM ${BASE_IMAGE}
|
||||
|
||||
ARG PYTHON_VERSION=3.10
|
||||
ARG PYTHON_VERSION=3.11
|
||||
ARG VERSION=latest
|
||||
|
||||
ARG USE_TSINGHUA_UBUNTU
|
||||
# Set environment variables
|
||||
ENV PYTHONUNBUFFERED=1 \
|
||||
DEBIAN_FRONTEND=noninteractive \
|
||||
LANG=C.UTF-8 \
|
||||
LC_ALL=C.UTF-8
|
||||
# Set PYTHONPATH
|
||||
|
||||
# Version label
|
||||
LABEL version=${VERSION}
|
||||
|
||||
# Install runtime dependencies
|
||||
RUN apt-get update && apt-get install -y \
|
||||
# Configure apt sources based on the USE_TSINGHUA_UBUNTU parameter
|
||||
RUN if [ "$USE_TSINGHUA_UBUNTU" = "true" ]; then \
|
||||
sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list && \
|
||||
sed -i 's/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list; \
|
||||
fi && \
|
||||
apt-get update && apt-get install -y --no-install-recommends gnupg ca-certificates apt-transport-https && \
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
apt-get update && apt-get install -y \
|
||||
python${PYTHON_VERSION} \
|
||||
python${PYTHON_VERSION}-venv \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Copy the virtual environment from the previous stage
|
||||
# Use antoher name to avoid conflict when mounting user's local .venv
|
||||
ENV FINAL_VENV_NAME="/opt/.uv.venv"
|
||||
COPY --from=builder /app/.venv ${FINAL_VENV_NAME}
|
||||
COPY . .
|
||||
|
||||
# Fix the shebang of the dbgpt script
|
||||
RUN sed -i "s|^#\!/app/\.venv/bin/python[0-9.]*|#!/${FINAL_VENV_NAME}/bin/python${PYTHON_VERSION}|" /${FINAL_VENV_NAME}/bin/dbgpt
|
||||
RUN sed -i "s|^#\!/app/\.venv/bin/python[0-9.]*|#!/${FINAL_VENV_NAME}/bin/python${PYTHON_VERSION}|" /${FINAL_VENV_NAME}/bin/pip
|
||||
|
||||
ENV PATH="${FINAL_VENV_NAME}/bin:$PATH" \
|
||||
VIRTUAL_ENV="${FINAL_VENV_NAME}"
|
||||
# PYTHONPATH="/app/packages/dbgpt/src:/app/packages/dbgpt-core/src:/app/packages/dbgpt-app/src:/app/packages/dbgpt-serve/src:/app/packages/dbgpt-client/src:/app/packages/dbgpt-ext/src:/app/packages/dbgpt-accelerator/src"
|
||||
|
||||
# Default command
|
||||
CMD ["dbgpt", "start", "webserver", "--config", "configs/dbgpt-siliconflow.toml"]
|
||||
CMD ["dbgpt", "start", "webserver", "--config", "configs/dbgpt-proxy-siliconflow.toml"]
|
@@ -4,41 +4,107 @@ SCRIPT_LOCATION=$0
|
||||
cd "$(dirname "$SCRIPT_LOCATION")"
|
||||
WORK_DIR=$(pwd)
|
||||
|
||||
BASE_IMAGE_DEFAULT="nvidia/cuda:12.1.0-devel-ubuntu22.04"
|
||||
BASE_IMAGE_DEFAULT_CPU="ubuntu:22.04"
|
||||
# Base image definitions
|
||||
CUDA_BASE_IMAGE="nvidia/cuda:12.4.0-devel-ubuntu22.04"
|
||||
CPU_BASE_IMAGE="ubuntu:22.04"
|
||||
|
||||
BASE_IMAGE=$BASE_IMAGE_DEFAULT
|
||||
# Define installation mode configurations: base_image, extras
|
||||
declare -A INSTALL_MODES
|
||||
|
||||
# Common mode configurations - Base configuration shared by modes using CUDA image
|
||||
DEFAULT_PROXY_EXTRAS="base,proxy_openai,rag,graph_rag,storage_chromadb,dbgpts,proxy_ollama,proxy_zhipuai,proxy_anthropic,proxy_qianfan,proxy_tongyi"
|
||||
DEFAULT_CUDA_EXTRAS="${DEFAULT_PROXY_EXTRAS},cuda121,hf,quant_bnb,flash_attn,quant_awq"
|
||||
|
||||
# Define each installation mode
|
||||
# Default mode configuration
|
||||
INSTALL_MODES["default,base_image"]=$CUDA_BASE_IMAGE
|
||||
INSTALL_MODES["default,extras"]=$DEFAULT_CUDA_EXTRAS
|
||||
INSTALL_MODES["default,env_vars"]=""
|
||||
|
||||
# OpenAI mode configuration - The only mode using CPU image
|
||||
INSTALL_MODES["openai,base_image"]=$CPU_BASE_IMAGE
|
||||
INSTALL_MODES["openai,extras"]="${DEFAULT_PROXY_EXTRAS}"
|
||||
INSTALL_MODES["openai,env_vars"]=""
|
||||
|
||||
# vllm mode configuration
|
||||
INSTALL_MODES["vllm,base_image"]=$CUDA_BASE_IMAGE
|
||||
INSTALL_MODES["vllm,extras"]="$DEFAULT_CUDA_EXTRAS,vllm"
|
||||
INSTALL_MODES["vllm,env_vars"]=""
|
||||
|
||||
# llama-cpp mode configuration
|
||||
INSTALL_MODES["llama-cpp,base_image"]=$CUDA_BASE_IMAGE
|
||||
INSTALL_MODES["llama-cpp,extras"]="$DEFAULT_CUDA_EXTRAS,llama_cpp,llama_cpp_server"
|
||||
INSTALL_MODES["llama-cpp,env_vars"]="CMAKE_ARGS=\"-DGGML_CUDA=ON\""
|
||||
|
||||
# Full functionality mode
|
||||
INSTALL_MODES["full,base_image"]=$CUDA_BASE_IMAGE
|
||||
INSTALL_MODES["full,extras"]="$DEFAULT_CUDA_EXTRAS,vllm,llama-cpp,llama_cpp_server"
|
||||
INSTALL_MODES["full,env_vars"]="CMAKE_ARGS=\"-DGGML_CUDA=ON\""
|
||||
|
||||
# Default value settings
|
||||
BASE_IMAGE=$CUDA_BASE_IMAGE
|
||||
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
|
||||
PIP_INDEX_URL="https://pypi.tuna.tsinghua.edu.cn/simple"
|
||||
LANGUAGE="en"
|
||||
BUILD_LOCAL_CODE="true"
|
||||
LOAD_EXAMPLES="true"
|
||||
BUILD_NETWORK=""
|
||||
DB_GPT_INSTALL_MODEL="default"
|
||||
DEFAULT_EXTRAS="proxy_openai,rag,storage_chromadb,quant_bnb"
|
||||
DB_GPT_INSTALL_MODE="default"
|
||||
EXTRAS=""
|
||||
ADDITIONAL_EXTRAS=""
|
||||
DOCKERFILE="Dockerfile"
|
||||
IMAGE_NAME_SUFFIX=""
|
||||
USE_TSINGHUA_UBUNTU="true"
|
||||
PYTHON_VERSION="3.11" # Minimum supported Python version: 3.10
|
||||
BUILD_ENV_VARS=""
|
||||
ADDITIONAL_ENV_VARS=""
|
||||
|
||||
usage () {
|
||||
echo "USAGE: $0 [--base-image nvidia/cuda:12.1.0-devel-ubuntu22.04] [--image-name db-gpt]"
|
||||
echo "USAGE: $0 [--base-image nvidia/cuda:12.1.0-devel-ubuntu22.04] [--image-name ${BASE_IMAGE}]"
|
||||
echo " [-b|--base-image base image name] Base image name"
|
||||
echo " [-n|--image-name image name] Current image name, default: db-gpt"
|
||||
echo " [-n|--image-name image name] Current image name, default: ${IMAGE_NAME}"
|
||||
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 " [-i|--pip-index-url pip index url] Pip index url, default: ${PIP_INDEX_URL}"
|
||||
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 " [--install-mode mode name] Installation mode name, default: default"
|
||||
echo " Available modes: default, openai, vllm, llama-cpp, full"
|
||||
echo " [--extras extra packages] Comma-separated list of extra packages to install, overrides the default for the install mode"
|
||||
echo " [--add-extras additional packages] Comma-separated list of additional extra packages to append to the default extras"
|
||||
echo " [--env-vars \"ENV_VAR1=value1 ENV_VAR2=value2\"] Environment variables for build, overrides the default for the install mode"
|
||||
echo " [--add-env-vars \"ENV_VAR1=value1 ENV_VAR2=value2\"] Additional environment variables to append to the default env vars"
|
||||
echo " [--use-tsinghua-ubuntu true or false] Whether to use Tsinghua Ubuntu mirror, default: true"
|
||||
echo " [--python-version version] Python version to use, default: ${PYTHON_VERSION}"
|
||||
echo " [-f|--dockerfile dockerfile] Dockerfile name, default: ${DOCKERFILE}"
|
||||
echo " [--list-modes] List all available install modes with their configurations"
|
||||
echo " [-h|--help] Usage message"
|
||||
}
|
||||
|
||||
list_modes() {
|
||||
echo "Available installation modes:"
|
||||
echo "--------------------------"
|
||||
# Get unique mode names
|
||||
local modes=()
|
||||
for key in "${!INSTALL_MODES[@]}"; do
|
||||
local mode_name="${key%%,*}"
|
||||
if [[ ! " ${modes[@]} " =~ " ${mode_name} " ]]; then
|
||||
modes+=("$mode_name")
|
||||
fi
|
||||
done
|
||||
|
||||
# Print each mode's configuration
|
||||
for mode in "${modes[@]}"; do
|
||||
echo "Mode: $mode"
|
||||
echo " Base image: ${INSTALL_MODES["$mode,base_image"]}"
|
||||
echo " Extras: ${INSTALL_MODES["$mode,extras"]}"
|
||||
if [ -n "${INSTALL_MODES["$mode,env_vars"]}" ]; then
|
||||
echo " Environment Variables: ${INSTALL_MODES["$mode,env_vars"]}"
|
||||
fi
|
||||
echo "--------------------------"
|
||||
done
|
||||
}
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
key="$1"
|
||||
case $key in
|
||||
@@ -67,11 +133,6 @@ while [[ $# -gt 0 ]]; do
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
--build-local-code)
|
||||
BUILD_LOCAL_CODE="$2"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
--load-examples)
|
||||
LOAD_EXAMPLES="$2"
|
||||
shift
|
||||
@@ -82,28 +143,53 @@ while [[ $# -gt 0 ]]; do
|
||||
shift # past argument
|
||||
shift # past value
|
||||
;;
|
||||
-h|--help)
|
||||
help="true"
|
||||
shift
|
||||
;;
|
||||
--install-mode)
|
||||
DB_GPT_INSTALL_MODEL="$2"
|
||||
DB_GPT_INSTALL_MODE="$2"
|
||||
shift # past argument
|
||||
shift # past value
|
||||
;;
|
||||
EXTRAS)
|
||||
--extras)
|
||||
EXTRAS="$2"
|
||||
shift # past argument
|
||||
shift # past value
|
||||
;;
|
||||
--add-extras)
|
||||
ADDITIONAL_EXTRAS="$2"
|
||||
shift # past argument
|
||||
shift # past value
|
||||
;;
|
||||
--env-vars)
|
||||
BUILD_ENV_VARS="$2"
|
||||
shift # past argument
|
||||
shift # past value
|
||||
;;
|
||||
--add-env-vars)
|
||||
ADDITIONAL_ENV_VARS="$2"
|
||||
shift # past argument
|
||||
shift # past value
|
||||
;;
|
||||
--use-tsinghua-ubuntu)
|
||||
USE_TSINGHUA_UBUNTU="$2"
|
||||
shift # past argument
|
||||
shift # past value
|
||||
;;
|
||||
--python-version)
|
||||
PYTHON_VERSION="$2"
|
||||
shift # past argument
|
||||
shift # past value
|
||||
;;
|
||||
-f|--dockerfile)
|
||||
DOCKERFILE="$2"
|
||||
shift # past argument
|
||||
shift # past value
|
||||
;;
|
||||
--list-modes)
|
||||
list_modes
|
||||
exit 0
|
||||
;;
|
||||
-h|--help)
|
||||
help="true"
|
||||
shift
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
usage
|
||||
@@ -112,46 +198,95 @@ while [[ $# -gt 0 ]]; do
|
||||
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
|
||||
# Set extras if it is empty
|
||||
if [ -z "$EXTRAS" ]; then
|
||||
EXTRAS="proxy_openai,rag,storage_chromadb,cpu"
|
||||
# If installation mode is provided, get base_image, extras, and env_vars from configuration
|
||||
if [ -n "$DB_GPT_INSTALL_MODE" ]; then
|
||||
# Check if it's a valid installation mode
|
||||
if [ -n "${INSTALL_MODES["$DB_GPT_INSTALL_MODE,base_image"]}" ]; then
|
||||
# If user hasn't explicitly specified BASE_IMAGE, use the default value for this mode
|
||||
if [ "$BASE_IMAGE" == "$CUDA_BASE_IMAGE" ]; then
|
||||
BASE_IMAGE="${INSTALL_MODES["$DB_GPT_INSTALL_MODE,base_image"]}"
|
||||
fi
|
||||
|
||||
# If user hasn't explicitly specified EXTRAS, use the default value for this mode
|
||||
if [ -z "$EXTRAS" ]; then
|
||||
EXTRAS="${INSTALL_MODES["$DB_GPT_INSTALL_MODE,extras"]}"
|
||||
fi
|
||||
|
||||
# If additional extras are specified, add them to existing extras
|
||||
if [ -n "$ADDITIONAL_EXTRAS" ]; then
|
||||
if [ -z "$EXTRAS" ]; then
|
||||
EXTRAS="$ADDITIONAL_EXTRAS"
|
||||
else
|
||||
EXTRAS="$EXTRAS,$ADDITIONAL_EXTRAS"
|
||||
fi
|
||||
fi
|
||||
|
||||
# If user hasn't explicitly specified BUILD_ENV_VARS, use the default value for this mode
|
||||
if [ -z "$BUILD_ENV_VARS" ]; then
|
||||
BUILD_ENV_VARS="${INSTALL_MODES["$DB_GPT_INSTALL_MODE,env_vars"]}"
|
||||
fi
|
||||
|
||||
# If additional env_vars are specified, add them to existing env_vars
|
||||
if [ -n "$ADDITIONAL_ENV_VARS" ]; then
|
||||
if [ -z "$BUILD_ENV_VARS" ]; then
|
||||
BUILD_ENV_VARS="$ADDITIONAL_ENV_VARS"
|
||||
else
|
||||
BUILD_ENV_VARS="$BUILD_ENV_VARS $ADDITIONAL_ENV_VARS"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "Warning: Unknown install mode '$DB_GPT_INSTALL_MODE'. Using defaults."
|
||||
fi
|
||||
|
||||
# Set image name suffix to installation mode
|
||||
if [ "$DB_GPT_INSTALL_MODE" != "default" ]; then
|
||||
IMAGE_NAME="$IMAGE_NAME-$DB_GPT_INSTALL_MODE"
|
||||
fi
|
||||
else
|
||||
# User input image is not empty
|
||||
BASE_IMAGE=$IMAGE_NAME_ARGS
|
||||
fi
|
||||
|
||||
# If image name argument is provided, use it as the image name
|
||||
if [ -n "$IMAGE_NAME_ARGS" ]; then
|
||||
IMAGE_NAME=$IMAGE_NAME_ARGS
|
||||
fi
|
||||
|
||||
# Add additional image name suffix
|
||||
if [ -n "$IMAGE_NAME_SUFFIX" ]; then
|
||||
IMAGE_NAME="$IMAGE_NAME-$IMAGE_NAME_SUFFIX"
|
||||
fi
|
||||
if [ -z "$EXTRAS" ]; then
|
||||
EXTRAS=$DEFAULT_EXTRAS
|
||||
|
||||
echo "Begin build docker image"
|
||||
echo "Base image: ${BASE_IMAGE}"
|
||||
echo "Target image name: ${IMAGE_NAME}"
|
||||
echo "Install mode: ${DB_GPT_INSTALL_MODE}"
|
||||
echo "Extras: ${EXTRAS}"
|
||||
echo "Additional Extras: ${ADDITIONAL_EXTRAS}"
|
||||
if [ -n "$BUILD_ENV_VARS" ]; then
|
||||
echo "Environment Variables: ${BUILD_ENV_VARS}"
|
||||
fi
|
||||
if [ -n "$ADDITIONAL_ENV_VARS" ]; then
|
||||
echo "Additional Environment Variables: ${ADDITIONAL_ENV_VARS}"
|
||||
fi
|
||||
echo "Python version: ${PYTHON_VERSION}"
|
||||
echo "Use Tsinghua Ubuntu mirror: ${USE_TSINGHUA_UBUNTU}"
|
||||
|
||||
# Build environment variable argument string
|
||||
BUILD_ENV_ARGS=""
|
||||
if [ -n "$BUILD_ENV_VARS" ]; then
|
||||
# Split environment variables and add them as build arguments
|
||||
for env_var in $BUILD_ENV_VARS; do
|
||||
var_name="${env_var%%=*}"
|
||||
BUILD_ENV_ARGS="$BUILD_ENV_ARGS --build-arg $env_var"
|
||||
done
|
||||
fi
|
||||
|
||||
echo "Begin build docker image, base image: ${BASE_IMAGE}, target image name: ${IMAGE_NAME}, extras: ${EXTRAS}"
|
||||
|
||||
docker build $BUILD_NETWORK \
|
||||
--build-arg USE_TSINGHUA_UBUNTU=$USE_TSINGHUA_UBUNTU \
|
||||
--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 \
|
||||
--build-arg EXTRAS=$EXTRAS \
|
||||
--build-arg PYTHON_VERSION=$PYTHON_VERSION \
|
||||
$BUILD_ENV_ARGS \
|
||||
-f $DOCKERFILE \
|
||||
-t $IMAGE_NAME $WORK_DIR/../../
|
||||
-t $IMAGE_NAME $WORK_DIR/../../
|
Reference in New Issue
Block a user