diff --git a/.gitea/docker.yml b/.gitea/docker.yml new file mode 100644 index 0000000..efaf31f --- /dev/null +++ b/.gitea/docker.yml @@ -0,0 +1,46 @@ +name: Build, Push and Redeploy Docker Image + +on: + push: + branches: + - main + +jobs: + build-and-push: + runs-on: ubuntu-latest + + env: + REGISTRY_HOST: git.byte-mate.ru + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up QEMU (for multi-arch, optional) + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to Gitea Container Registry + run: | + echo "${{ secrets.GIT_PASSWORD }}" | docker login "${{ env.REGISTRY_HOST }}" -u "${{ github.actor }}" --password-stdin + + - name: Get short SHA + id: vars + run: echo "sha_short=$(git rev-parse --short HEAD)" >> "$GITHUB_ENV" + + - name: Build and push + run: | + docker buildx build \ + --no-cache \ + --push \ + --platform linux/arm64/v8 \ + --tag ${{ env.REGISTRY_HOST }}/drholy/rkllm-gradio-server:${{ env.sha_short }} \ + --tag ${{ env.REGISTRY_HOST }}/drholy/rkllm-gradio-server:latest \ + --push \ + . + + # - name: Redeploy stack in Portainer + # run: | + # curl -X POST "${{ secrets.PORTAINER_WEBHOOK_URL }}" \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 42d900a..fe5b326 100755 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,6 @@ FROM python:3.11.11 # Установка метаданных -LABEL maintainer="your-email@example.com" LABEL description="Docker image with Python 3.11.11 and required packages" # Обновление системы и установка базовых зависимостей @@ -24,6 +23,8 @@ RUN pip install --upgrade pip && \ # Проверка версии Python и pip RUN python --version && pip --version +RUN pip install --no-cache-dir -r requirements.txt + # Очистка кэша RUN apt-get clean && \ rm -rf /tmp/* /var/tmp/* diff --git a/README.md b/README.md index 6b6dd02..80d93a7 100644 --- a/README.md +++ b/README.md @@ -53,9 +53,6 @@ http://localhost:8080 Проект использует следующие виртуальные файловые системы: - `/app` — для приложения. -- `/cache/cache` — для кэша. -- `/cache/site-packages` — для пакетов Python. -- `/offline_packages` — для офлайн пакетов. - `/ezrknn-llm` — для дополнительных библиотек. ## Настройка и использование моделей diff --git a/app/entrypoint.sh b/app/entrypoint.sh index 1111180..7216a58 100755 --- a/app/entrypoint.sh +++ b/app/entrypoint.sh @@ -10,7 +10,7 @@ message_print() { cd / message_print "Changing to repository..." -git clone https://github.com/DrHo1y/ezrknn-llm +git clone https://git.home/drholy/ezrknn-llm cd ezrknn-llm/ cp ./rkllm-runtime/runtime/Linux/librkllm_api/aarch64/* /usr/lib cp ./rkllm-runtime/runtime/Linux/librkllm_api/include/* /usr/local/include @@ -29,10 +29,6 @@ echo "root soft nofile 16384" >> /etc/security/limits.conf echo "root hard nofile 1048576" >> /etc/security/limits.conf message_print "Done installing ezrknn-llm!" -message_print "Install python packages" -cd /offline_packages -python -m pip install --no-index --find-links . -r requirements.txt - message_print "Start Gradio server" cd /app python rkllm_server_gradio.py \ No newline at end of file diff --git a/app/rkllm_server_gradio.py b/app/rkllm_server_gradio.py index 5dabaca..b2161b0 100644 --- a/app/rkllm_server_gradio.py +++ b/app/rkllm_server_gradio.py @@ -6,8 +6,8 @@ from model_class import * from mesh_utils import * # Set environment variables -os.environ["GRADIO_SERVER_NAME"] = "0.0.0.0" -os.environ["GRADIO_SERVER_PORT"] = "8080" +#os.environ["GRADIO_SERVER_NAME"] = "0.0.0.0" +#os.environ["GRADIO_SERVER_PORT"] = 8080 os.environ["RKLLM_LOG_LEVEL"] = "1" # Set resource limit resource.setrlimit(resource.RLIMIT_NOFILE, (102400, 102400)) @@ -29,7 +29,7 @@ if __name__ == "__main__": print(init_msg) sys.stdout.flush() rkllm_model = RKLLMLoaderClass(model=model) - model_init = f"RKLLM Model, {rkllm_model.model_name} has been initialized successfully!" + model_init = f"RKLLM Model, {rkllm_model.model_name} has been initialized successfully!" print(model_init) complete_init = "==============================" print(complete_init) @@ -106,7 +106,13 @@ if __name__ == "__main__": # Enable the event queue system. chatRKLLM.queue() # Start the Gradio application. - chatRKLLM.launch() + chatRKLLM.launch( + server_name="0.0.0.0", + server_port=8080, + share=False, + show_error=True, + quiet=False + ) print("====================") print("RKLLM model inference completed, releasing RKLLM model resources...") diff --git a/docker-compose.yaml b/docker-compose.yaml index d9c2703..9a0028f 100755 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -9,9 +9,6 @@ services: privileged: true volumes: - ./app:/app - - ./cache/cache:/root/.cache - - ./cache/site-packages:/usr/local/lib/python3.11/site-packages - - ./offline_packages:/offline_packages - ./ezrknn-llm:/ezrknn-llm entrypoint: ./app/entrypoint.sh ports: @@ -22,8 +19,4 @@ networks: apps: name: apps driver: bridge - ipam: - driver: default - config: - - subnet: "172.100.0.0/24" - gateway: "172.100.0.1" \ No newline at end of file + diff --git a/offline_packages/requirements.txt b/offline_packages/requirements.txt deleted file mode 100755 index 7ec5ff8..0000000 --- a/offline_packages/requirements.txt +++ /dev/null @@ -1,8 +0,0 @@ -gradio==5.14.0 -gradio_client==1.7.0 -huggingface-hub==0.26.2 -Jinja2==3.1.4 -numpy==2.1.3 -transformers==4.46.2 -trimesh==4.5.2 -sentencepiece==0.2.0 \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100755 index 0000000..7605024 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,8 @@ +gradio==5.25.0 +gradio_client>=1.7.0 +huggingface-hub==0.28.1 +Jinja2==3.1.4 +numpy==2.1.3 +transformers==4.46.2 +trimesh==4.5.2 +sentencepiece==0.2.0