diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index c230c5a..0000000 --- a/Dockerfile +++ /dev/null @@ -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 $@ - diff --git a/config/config.json b/config/config.json new file mode 100644 index 0000000..9e5095e --- /dev/null +++ b/config/config.json @@ -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" +} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..8b6e133 --- /dev/null +++ b/docker-compose.yml @@ -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 \ No newline at end of file diff --git a/gpt4-copilot-java-0.0.3.jar b/gpt4-copilot-java-0.0.3.jar deleted file mode 100644 index 5dcca83..0000000 Binary files a/gpt4-copilot-java-0.0.3.jar and /dev/null differ diff --git a/install.sh b/install.sh deleted file mode 100644 index 781e9e2..0000000 --- a/install.sh +++ /dev/null @@ -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 diff --git a/update.sh b/update.sh deleted file mode 100644 index 5406e2f..0000000 --- a/update.sh +++ /dev/null @@ -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