From c92045c598a3c867f1f9cf658d5c4281d0ad5904 Mon Sep 17 00:00:00 2001 From: remsky Date: Thu, 23 Jan 2025 05:41:30 -0700 Subject: [PATCH] Add Docker build scripts for CPU and GPU images, update Dockerfiles to include project files and adjust ONNX usage --- docker/build.sh | 33 +++++++++++++++++++++++++++++++++ docker/cpu/Dockerfile | 6 +++++- docker/gpu/Dockerfile | 2 +- 3 files changed, 39 insertions(+), 2 deletions(-) create mode 100755 docker/build.sh diff --git a/docker/build.sh b/docker/build.sh new file mode 100755 index 0000000..baa7589 --- /dev/null +++ b/docker/build.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -e + +# Get version from argument or use default +VERSION=${1:-"latest"} + +# GitHub Container Registry settings +REGISTRY="ghcr.io" +OWNER="remsky" +REPO="kokoro-fastapi" + +# Build CPU image +echo "Building CPU image..." +docker build -t ${REGISTRY}/${OWNER}/${REPO}-cpu:${VERSION} -f docker/cpu/Dockerfile . +docker tag ${REGISTRY}/${OWNER}/${REPO}-cpu:${VERSION} ${REGISTRY}/${OWNER}/${REPO}-cpu:latest + +# Build GPU image +echo "Building GPU image..." +docker build -t ${REGISTRY}/${OWNER}/${REPO}-gpu:${VERSION} -f docker/gpu/Dockerfile . +docker tag ${REGISTRY}/${OWNER}/${REPO}-gpu:${VERSION} ${REGISTRY}/${OWNER}/${REPO}-gpu:latest + +echo "Build complete!" +echo "Created images:" +echo "- ${REGISTRY}/${OWNER}/${REPO}-cpu:${VERSION}" +echo "- ${REGISTRY}/${OWNER}/${REPO}-cpu:latest" +echo "- ${REGISTRY}/${OWNER}/${REPO}-gpu:${VERSION}" +echo "- ${REGISTRY}/${OWNER}/${REPO}-gpu:latest" + +echo -e "\nTo push to GitHub Container Registry:" +echo "docker push ${REGISTRY}/${OWNER}/${REPO}-cpu:${VERSION}" +echo "docker push ${REGISTRY}/${OWNER}/${REPO}-cpu:latest" +echo "docker push ${REGISTRY}/${OWNER}/${REPO}-gpu:${VERSION}" +echo "docker push ${REGISTRY}/${OWNER}/${REPO}-gpu:latest" diff --git a/docker/cpu/Dockerfile b/docker/cpu/Dockerfile index df4fa8b..9ec8c16 100644 --- a/docker/cpu/Dockerfile +++ b/docker/cpu/Dockerfile @@ -31,6 +31,10 @@ RUN --mount=type=cache,target=/root/.cache/uv \ uv venv && \ uv sync --extra cpu --no-install-project +# Copy project files including models +COPY --chown=appuser:appuser api ./api +COPY --chown=appuser:appuser web ./web + # Copy project files COPY --chown=appuser:appuser api ./api COPY --chown=appuser:appuser web ./web @@ -45,7 +49,7 @@ ENV PYTHONPATH=/app ENV PATH="/app/.venv/bin:$PATH" ENV UV_LINK_MODE=copy ENV USE_GPU=false -ENV USE_ONNX=true +ENV USE_ONNX=false # Run FastAPI server CMD ["uv", "run", "python", "-m", "uvicorn", "api.src.main:app", "--host", "0.0.0.0", "--port", "8880", "--log-level", "debug"] diff --git a/docker/gpu/Dockerfile b/docker/gpu/Dockerfile index b1d6741..fa3778e 100644 --- a/docker/gpu/Dockerfile +++ b/docker/gpu/Dockerfile @@ -35,7 +35,7 @@ RUN --mount=type=cache,target=/root/.cache/uv \ uv venv && \ uv sync --extra gpu -# Copy project files +# Copy project files including models COPY --chown=appuser:appuser api ./api COPY --chown=appuser:appuser web ./web