mirror of
https://github.com/Yanyutin753/unofficial-gpt4-api.git
synced 2025-10-14 23:20:23 +00:00
gpt4-copilot-java-native-0.0.5
This commit is contained in:
21
Dockerfile
21
Dockerfile
@@ -1,21 +0,0 @@
|
|||||||
# 从 sapmachine:17.0.10-jre-ubuntu-jammy 镜像开始构建
|
|
||||||
FROM sapmachine:17.0.10-jre-ubuntu-jammy
|
|
||||||
|
|
||||||
# 指定维护者的名字
|
|
||||||
LABEL maintainer="Yanyutin753"
|
|
||||||
|
|
||||||
# 切换到 root 用户
|
|
||||||
USER root
|
|
||||||
|
|
||||||
# 复制JAR文件到容器的/app目录下
|
|
||||||
COPY gpt4-copilot-java-0.0.3.jar /app/app.jar
|
|
||||||
|
|
||||||
# 切换到/app目录
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
# 声明服务运行在8081端口
|
|
||||||
EXPOSE 8081
|
|
||||||
|
|
||||||
# 指定docker容器启动时运行jar包,适当减少JVM内存分配
|
|
||||||
ENTRYPOINT exec java $JAVA_OPTS -Dfile.encoding=UTF-8 -jar app.jar $@
|
|
||||||
|
|
10
config/config.json
Normal file
10
config/config.json
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"gpt3_sleepTime": "0",
|
||||||
|
"password": "",
|
||||||
|
"get_token_url": "https://api.cocopilot.org/copilot_internal/v2/token",
|
||||||
|
"prefix": "\/tokensTool",
|
||||||
|
"vscode_version": "vscode\/1.85.2",
|
||||||
|
"serverPort": 8080,
|
||||||
|
"maxPoolSize": 300,
|
||||||
|
"gpt4_sleepTime": "100"
|
||||||
|
}
|
14
docker-compose.yml
Normal file
14
docker-compose.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
version: '3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
gpt4-copilot-java:
|
||||||
|
# 该服务使用的 Docker 镜像
|
||||||
|
image: yangclivia/gpt4-copilot-java:latest
|
||||||
|
# 为该服务创建的容器的名称
|
||||||
|
container_name: gpt4-copilot-java
|
||||||
|
volumes:
|
||||||
|
- ./config/config.json:/config.json
|
||||||
|
ports:
|
||||||
|
- "8081:8080"
|
||||||
|
# 容器总是重新启动
|
||||||
|
restart: always
|
Binary file not shown.
159
install.sh
159
install.sh
@@ -1,159 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# 函数:确认删除目录
|
|
||||||
confirm_delete() {
|
|
||||||
echo "目标目录已存在,是否删除并拉取最新代码?(y/n)"
|
|
||||||
read confirm
|
|
||||||
if [ "$confirm" = "y" ]; then # 修改了这一行
|
|
||||||
# 检查是否有足够的权限
|
|
||||||
if [ ! -w /gpt4-copilot-java ]; then
|
|
||||||
echo "没有足够的权限删除目录,请检查权限设置。"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 删除目录的操作
|
|
||||||
cd / && rm -rf /gpt4-copilot-java
|
|
||||||
|
|
||||||
# 重新创建目录
|
|
||||||
mkdir /gpt4-copilot-java
|
|
||||||
else
|
|
||||||
echo "取消操作,退出脚本。"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
echo "检查是否已经安装 bash"
|
|
||||||
if ! command -v bash &> /dev/null; then
|
|
||||||
# 安装 bash
|
|
||||||
if command -v apt &> /dev/null; then
|
|
||||||
sudo apt update
|
|
||||||
sudo apt-get install bash
|
|
||||||
elif command -v yum &> /dev/null; then
|
|
||||||
sudo yum update
|
|
||||||
sudo yum install bash
|
|
||||||
else
|
|
||||||
echo "不支持的包管理器,无法安装 bash。"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "安装 bash 成功!"
|
|
||||||
else
|
|
||||||
echo "bash 已经安装,跳过安装步骤。"
|
|
||||||
fi
|
|
||||||
echo "检查是否已经安装 docker"
|
|
||||||
if ! command -v docker &> /dev/null; then
|
|
||||||
# 安装 Docker
|
|
||||||
if command -v apt &> /dev/null; then
|
|
||||||
sudo apt update
|
|
||||||
sudo apt-get install docker-ce
|
|
||||||
elif command -v yum &> /dev/null; then
|
|
||||||
sudo yum update
|
|
||||||
sudo yum install docker-ce
|
|
||||||
else
|
|
||||||
echo "不支持的包管理器,无法安装 Docker。"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "安装 Docker 成功!"
|
|
||||||
else
|
|
||||||
echo "Docker 已经安装,跳过安装步骤。"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "检查是否已经安装 docker-compose"
|
|
||||||
if ! command -v docker-compose &> /dev/null; then
|
|
||||||
# 安装 docker-compose
|
|
||||||
if command -v apt &> /dev/null; then
|
|
||||||
sudo apt update
|
|
||||||
sudo apt install docker-compose
|
|
||||||
elif command -v yum &> /dev/null; then
|
|
||||||
sudo yum update
|
|
||||||
sudo yum install docker-compose
|
|
||||||
else
|
|
||||||
echo "不支持的包管理器,无法安装 Docker Compose。"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
# 检查安装是否成功
|
|
||||||
if command -v docker-compose &> /dev/null; then
|
|
||||||
echo "安装 Docker Compose 成功!"
|
|
||||||
else
|
|
||||||
echo "安装 Docker Compose 失败,请检查安装过程。"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Docker Compose 已经安装,跳过安装步骤。"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 设置目标目录
|
|
||||||
target_dir="/gpt4-copilot-java"
|
|
||||||
|
|
||||||
# 检查目标目录是否已经存在
|
|
||||||
if [ -d "$target_dir" ]; then
|
|
||||||
confirm_delete
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "克隆 github 仓库到目标目录并切换到主分支"
|
|
||||||
git clone https://github.com/Yanyutin753/easy-gpt4-copilot-java.git /gpt4-copilot-java
|
|
||||||
echo "克隆成功"
|
|
||||||
|
|
||||||
echo "进入 /gpt4-copilot-java 目录"
|
|
||||||
cd /gpt4-copilot-java
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
# 提示用户输入新的端口号
|
|
||||||
read -p "请输入gpt4-copilot-java的端口号(默认为8081): " new_port
|
|
||||||
|
|
||||||
# 如果用户没有输入,使用默认端口号8081
|
|
||||||
new_port=${new_port:-8081}
|
|
||||||
|
|
||||||
# 检验端口号是否为一个数字,并且是否在1到65535的范围内
|
|
||||||
if [ "$new_port" -ge 1 ] && [ "$new_port" -le 65535 ] && [ "$new_port" -eq "$new_port" ] 2>/dev/null; then
|
|
||||||
# 输入合法,退出循环
|
|
||||||
break
|
|
||||||
else
|
|
||||||
echo "错误:端口号无效,请输入一个有效的端口号(1到65535之间)。"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
# 提示用户是否需要自定义后缀
|
|
||||||
read -p "是否需要自定义后缀? (y/n) " need_suffix
|
|
||||||
if [ "$need_suffix" = "y" ]; then
|
|
||||||
while true; do
|
|
||||||
# 提示用户输入新的后缀
|
|
||||||
random_string=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 10 | head -n 1)
|
|
||||||
echo "请输入新的后缀(例如:/$random_string): "
|
|
||||||
read new_suffix
|
|
||||||
|
|
||||||
# 如果用户没有输入,使用默认后缀 '/'
|
|
||||||
new_suffix=${new_suffix:-/}
|
|
||||||
|
|
||||||
# 检查新的后缀是否以 '/' 开始
|
|
||||||
case "$new_suffix" in
|
|
||||||
/*)
|
|
||||||
# 后缀以 '/' 开始,退出内部循环
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
# 后缀不以 '/' 开始,提示用户重新输入
|
|
||||||
echo "错误:后缀应以 '/' 开始,请重新输入。\n"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
# 后缀已经被替换,退出外部循环
|
|
||||||
break
|
|
||||||
elif [ "$need_suffix" = "n" ]; then
|
|
||||||
break
|
|
||||||
else
|
|
||||||
printf "错误:无效的输入,请输入 'y' 或 'n'.\n"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# 替换docker-compose.yml文件中的后缀和端口号
|
|
||||||
sed -i -e "s|--server.servlet.context-path=/|--server.servlet.context-path=${new_suffix}|" -e "s|--server.port=[0-9]\+|--server.port=${new_port}|" docker-compose.yml
|
|
||||||
|
|
||||||
# 运行 Docker Compose 启动命令
|
|
||||||
if docker-compose up -d; then
|
|
||||||
echo "Docker Compose 启动成功,请确保开启 ${new_port} 端口"
|
|
||||||
echo "gpt4-copilot-java启动网址:http://127.0.0.1:${new_port}${new_suffix}"
|
|
||||||
else
|
|
||||||
echo "Docker Compose 启动失败!请确保正确安装docker和docker compose"
|
|
||||||
fi
|
|
62
update.sh
62
update.sh
@@ -1,62 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo "检查 /gpt4-copilot-java 路径是否存在"
|
|
||||||
if [ -d "/gpt4-copilot-java" ]; then
|
|
||||||
echo "开始更新 gpt4-copilot-java 服务..."
|
|
||||||
|
|
||||||
# 切换到 /gpt4-copilot-java 目录
|
|
||||||
cd /gpt4-copilot-java || exit
|
|
||||||
|
|
||||||
# 停止 tokensTool 和 gpt4-copilot-java 服务
|
|
||||||
docker-compose down
|
|
||||||
|
|
||||||
echo "拉取最新的镜像"
|
|
||||||
docker-compose pull
|
|
||||||
|
|
||||||
# 重新构建并启动所有服务
|
|
||||||
docker-compose up -d --build
|
|
||||||
|
|
||||||
running_images=$(docker ps -a --format "{{.Image}}")
|
|
||||||
|
|
||||||
# 获取所有镜像
|
|
||||||
all_images=$(docker images -a --format "{{.ID}} {{.Repository}}")
|
|
||||||
|
|
||||||
# 初始化一个变量来跟踪是否所有的镜像都被成功删除
|
|
||||||
all_images_removed=true
|
|
||||||
|
|
||||||
# 遍历所有的 Docker 镜像
|
|
||||||
echo "$all_images" | while IFS= read -r image; do
|
|
||||||
# 提取镜像ID和镜像名
|
|
||||||
image_id=$(echo "$image" | cut -d' ' -f1)
|
|
||||||
image_name=$(echo "$image" | cut -d' ' -f2)
|
|
||||||
|
|
||||||
# 检查这个镜像是否是 gpt4-copilot-java
|
|
||||||
if [ "$image_name" = "gpt4-copilot-java" ]; then
|
|
||||||
# 检查这个镜像是否正在运行
|
|
||||||
if echo "$running_images" | grep -q "$image_name"; then
|
|
||||||
: # Image is running, do nothing
|
|
||||||
else
|
|
||||||
# 如果这个镜像没有正在运行,那么删除它
|
|
||||||
docker rmi -f "$image_id"
|
|
||||||
|
|
||||||
# 如果删除镜像的命令失败,那么设置 all_images_removed 为 false
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
all_images_removed=false
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# 打印是否所有的镜
|
|
||||||
# 等待所有的后台任务都完成
|
|
||||||
wait
|
|
||||||
|
|
||||||
# 如果所有的镜像都被成功删除,那么输出 "所有镜像删除成功"
|
|
||||||
if $all_images_removed; then
|
|
||||||
echo "所有镜像删除成功。"
|
|
||||||
else
|
|
||||||
echo "有些镜像没有被成功删除。"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "没有 /gpt4-copilot-java 路径,请先一键部署之后才能一键更新。"
|
|
||||||
fi
|
|
Reference in New Issue
Block a user