From 8448df97057d4be0f5d1c68ec0ac8d549f671c39 Mon Sep 17 00:00:00 2001 From: Vladyslav Marchuk <134324829+marchuk-vlad@users.noreply.github.com> Date: Tue, 10 Dec 2024 16:20:46 +0300 Subject: [PATCH] feat(tgwui): Added CPU build (#76) * feat(tgwui): Added CPU build * fix(tgwui): GH action build * fi(ga-build-context): Removed echo * Revert "fi(ga-build-context): Removed echo" This reverts commit c6dff32dcb0a49c574ad04b6fdbb2f117d198e32. * fix(tgwui-dockerfile): Added quotes * fix(ga-build-engines): Added echo logs * fix(tgwui): args on the top, fix echo log * fix(ga-build-engine): Refactor build-args * fix(tgwui-dockerfile): try to fix reading variable * fx(ga-build-engine): Fix spaces * fix(ga-build-engine): Removed loop * fix(tgwui-dockerfile): Try to get build-arg * fix(tgwui-dockerfile): Moved arg --- .github/workflows/build-engine.yml | 17 ++++++++++++++--- Text Generation WebUI/Dockerfile | 6 +++++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-engine.yml b/.github/workflows/build-engine.yml index c415e91..8eefb6b 100644 --- a/.github/workflows/build-engine.yml +++ b/.github/workflows/build-engine.yml @@ -7,7 +7,8 @@ on: required: true type: choice options: - - text-generation-webui + - text-generation-webui-gpu + - text-generation-webui-cpu - comfyui target: description: 'Target' @@ -42,10 +43,17 @@ jobs: - name: Prepare variables run: | - if [ "$SOLUTION" == "text-generation-webui" ]; then + if [[ "$SOLUTION" == text-generation-webui* ]]; then DOCKERFILE="./Text Generation WebUI/Dockerfile" DOCKERFILE_CONTEXT="./Text Generation WebUI/" SUBMODULE_PATH="Text\ Generation\ WebUI/text-generation-webui" + + if [[ "$SOLUTION" == *cpu ]]; then + BUILD_ARGS="--build-arg GPU_CHOICE=N" + elif [[ "$SOLUTION" == *gpu ]]; then + BUILD_ARGS="--build-arg GPU_CHOICE=A" + fi + elif [ "$SOLUTION" == "comfyui" ]; then DOCKERFILE="./ComfyUI/Dockerfile" DOCKERFILE_CONTEXT="./ComfyUI/" @@ -58,6 +66,7 @@ jobs: echo "DOCKERFILE=$DOCKERFILE" >> $GITHUB_ENV echo "DOCKERFILE_CONTEXT=$DOCKERFILE_CONTEXT" >> $GITHUB_ENV echo "SUBMODULE_PATH=$SUBMODULE_PATH" >> $GITHUB_ENV + echo "BUILD_ARGS=$BUILD_ARGS" >> $GITHUB_ENV - name: Checkout git submodules run: | @@ -88,7 +97,9 @@ jobs: - name: Build Docker image and save to file run: | IMAGE_FILE="$SOLUTION-image-b${{ github.run_id }}.tar.gz" - docker build -t $SOLUTION:latest -f "$DOCKERFILE" "$DOCKERFILE_CONTEXT" + echo "docker build -t $SOLUTION:latest -f $DOCKERFILE $(echo $BUILD_ARGS) $DOCKERFILE_CONTEXT" + docker build -t $SOLUTION:latest -f "$DOCKERFILE" $(echo $BUILD_ARGS) "$DOCKERFILE_CONTEXT" + docker save $SOLUTION:latest | gzip > $IMAGE_FILE echo "IMAGE_FILE=$IMAGE_FILE" >> $GITHUB_ENV diff --git a/Text Generation WebUI/Dockerfile b/Text Generation WebUI/Dockerfile index ff70e66..27a38f8 100644 --- a/Text Generation WebUI/Dockerfile +++ b/Text Generation WebUI/Dockerfile @@ -10,16 +10,20 @@ RUN npm ci &&\ FROM node:20-bookworm +ARG GPU_CHOICE + WORKDIR /home/node/app RUN mkdir -p /sp/inputs /sp/output /sp/run COPY --from=builder /home/node/app/text-generation-webui ./text-generation-webui +ENV GPU_CHOICE=$GPU_CHOICE + RUN apt update && apt install -y git &&\ git config --global --add safe.directory /home/node/app/text-generation-webui &&\ chmod +x ./text-generation-webui/start_linux.sh &&\ - GPU_CHOICE=A USE_CUDA118=FALSE LAUNCH_AFTER_INSTALL=FALSE INSTALL_EXTENSIONS=FALSE ./text-generation-webui/start_linux.sh &&\ + USE_CUDA118=FALSE LAUNCH_AFTER_INSTALL=FALSE INSTALL_EXTENSIONS=FALSE ./text-generation-webui/start_linux.sh &&\ apt remove git -y &&\ wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb &&\ dpkg -i libssl1.1_1.1.0g-2ubuntu4_amd64.deb &&\