feat: supports docker compose deployment

This commit is contained in:
FangYin Cheng
2023-07-26 20:07:25 +08:00
parent 700d9bf3e9
commit 671cddf4e7
16 changed files with 531 additions and 45 deletions

View File

@@ -0,0 +1,30 @@
ARG BASE_IMAGE="db-gpt:latest"
FROM ${BASE_IMAGE}
RUN apt-get update && apt-get install -y wget gnupg lsb-release net-tools
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
RUN wget https://dev.mysql.com/get/mysql-apt-config_0.8.17-1_all.deb
RUN dpkg -i mysql-apt-config_0.8.17-1_all.deb
RUN apt-get update && apt-get install -y mysql-server && apt-get clean
# Remote access
RUN sed -i 's/bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/g' /etc/mysql/mysql.conf.d/mysqld.cnf \
&& echo "[mysqld]\ncharacter_set_server=utf8mb4\ncollation-server=utf8mb4_unicode_ci\ninit_connect='SET NAMES utf8mb4'\n[mysql]\ndefault-character-set=utf8mb4\n[client]\ndefault-character-set=utf8mb4\n" >> /etc/mysql/my.cnf
# Init sql
RUN mkdir /docker-entrypoint-initdb.d \
&& echo "USE mysql;\nUPDATE user SET Host='%' WHERE User='root';\nFLUSH PRIVILEGES;" > /docker-entrypoint-initdb.d/init.sql
ENV MYSQL_ROOT_PASSWORD=aa123456
ENV LOCAL_DB_PASSWORD="$MYSQL_ROOT_PASSWORD"
RUN cp /app/assets/schema/knowledge_management.sql /docker-entrypoint-initdb.d/
COPY docker/allinone/allinone-entrypoint.sh /usr/local/bin/allinone-entrypoint.sh
COPY docker/examples/sqls/ /docker-entrypoint-initdb.d/
ENTRYPOINT ["/usr/local/bin/allinone-entrypoint.sh"]

View File

@@ -0,0 +1,17 @@
#!/bin/bash
service mysql start
# execute all mysql init script
for file in /docker-entrypoint-initdb.d/*.sql
do
echo "execute sql file: $file"
mysql -u root -p${MYSQL_ROOT_PASSWORD} < "$file"
done
mysql -u root -p${MYSQL_ROOT_PASSWORD} -e "
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '$MYSQL_ROOT_PASSWORD';
FLUSH PRIVILEGES;
"
python3 pilot/server/dbgpt_server.py

9
docker/allinone/build_image.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/bash
SCRIPT_LOCATION=$0
cd "$(dirname "$SCRIPT_LOCATION")"
WORK_DIR=$(pwd)
IMAGE_NAME="db-gpt-allinone"
docker build -f Dockerfile -t $IMAGE_NAME $WORK_DIR/../../

13
docker/allinone/run.sh Executable file
View File

@@ -0,0 +1,13 @@
#!/bin/bash
docker run --gpus "device=0" -d -p 3306:3306 \
-p 5000:5000 \
-e LOCAL_DB_HOST=127.0.0.1 \
-e LOCAL_DB_PASSWORD=aa123456 \
-e MYSQL_ROOT_PASSWORD=aa123456 \
-e LLM_MODEL=vicuna-13b \
-e LANGUAGE=zh \
-v /data:/data \
-v /data/models:/app/models \
--name db-gpt-allinone \
db-gpt-allinone

19
docker/allinone/run_proxyllm.sh Executable file
View File

@@ -0,0 +1,19 @@
#!/bin/bash
# Your api key
PROXY_API_KEY="$PROXY_API_KEY"
PROXY_SERVER_URL="${PROXY_SERVER_URL-'https://api.openai.com/v1/chat/completions'}"
docker run --gpus "device=0" -d -p 3306:3306 \
-p 5000:5000 \
-e LOCAL_DB_HOST=127.0.0.1 \
-e LOCAL_DB_PASSWORD=aa123456 \
-e MYSQL_ROOT_PASSWORD=aa123456 \
-e LLM_MODEL=proxyllm \
-e PROXY_API_KEY=$PROXY_API_KEY \
-e PROXY_SERVER_URL=$PROXY_SERVER_URL \
-e LANGUAGE=zh \
-v /data:/data \
-v /data/models:/app/models \
--name db-gpt-allinone \
db-gpt-allinone