diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 6a6eb68..c917965 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -23,7 +23,7 @@ jobs: id: check-prerelease run: echo "is_prerelease=${{ contains(github.ref, '-pre') }}" >> $GITHUB_OUTPUT - build-cpu: + build-images: needs: prepare-release runs-on: ubuntu-latest permissions: @@ -62,71 +62,16 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Build and push CPU image + - name: Build and push images env: DOCKER_BUILDKIT: 1 BUILDKIT_STEP_LOG_MAX_SIZE: 10485760 + VERSION: ${{ needs.prepare-release.outputs.version }} run: | - docker buildx build --platform linux/amd64,linux/arm64 \ - -t ghcr.io/remsky/kokoro-fastapi-cpu:${{ needs.prepare-release.outputs.version }} \ - -t ghcr.io/remsky/kokoro-fastapi-cpu:latest \ - -f docker/cpu/Dockerfile \ - --push \ - --build-arg BUILDKIT_INLINE_CACHE=1 . - - build-gpu: - needs: prepare-release - runs-on: ubuntu-latest - permissions: - packages: write - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Free disk space - run: | - echo "Listing current disk space" - df -h - echo "Cleaning up disk space..." - sudo rm -rf /usr/share/dotnet - sudo rm -rf /usr/local/lib/android - sudo rm -rf /opt/ghc - sudo rm -rf /opt/hostedtoolcache - docker system prune -af - echo "Disk space after cleanup" - df -h - - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - with: - driver-opts: | - image=moby/buildkit:latest - network=host - - - name: Log in to GitHub Container Registry - uses: docker/login-action@v2 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Build and push GPU image - env: - DOCKER_BUILDKIT: 1 - BUILDKIT_STEP_LOG_MAX_SIZE: 10485760 - run: | - docker buildx build --platform linux/amd64,linux/arm64 \ - -t ghcr.io/remsky/kokoro-fastapi-gpu:${{ needs.prepare-release.outputs.version }} \ - -t ghcr.io/remsky/kokoro-fastapi-gpu:latest \ - -f docker/gpu/Dockerfile \ - --push \ - --build-arg BUILDKIT_INLINE_CACHE=1 . + docker buildx bake --push create-release: - needs: [prepare-release, build-cpu, build-gpu] + needs: [prepare-release, build-images] runs-on: ubuntu-latest permissions: contents: write diff --git a/docker/cpu/Dockerfile b/docker/cpu/Dockerfile index a3fc898..781b251 100644 --- a/docker/cpu/Dockerfile +++ b/docker/cpu/Dockerfile @@ -44,7 +44,9 @@ ENV PYTHONUNBUFFERED=1 \ PYTHONPATH=/app:/app/api \ PATH="/app/.venv/bin:$PATH" \ UV_LINK_MODE=copy \ - USE_GPU=false + USE_GPU=false \ + PHONEMIZER_ESPEAK_PATH=/usr/bin \ + PHONEMIZER_ESPEAK_DATA=/usr/share/espeak-ng-data ENV DOWNLOAD_MODEL=true # Download model if enabled diff --git a/docker/gpu/Dockerfile b/docker/gpu/Dockerfile index df9d383..10bb4b8 100644 --- a/docker/gpu/Dockerfile +++ b/docker/gpu/Dockerfile @@ -47,7 +47,9 @@ ENV PYTHONUNBUFFERED=1 \ PYTHONPATH=/app:/app/api \ PATH="/app/.venv/bin:$PATH" \ UV_LINK_MODE=copy \ - USE_GPU=true + USE_GPU=true \ + PHONEMIZER_ESPEAK_PATH=/usr/bin \ + PHONEMIZER_ESPEAK_DATA=/usr/share/espeak-ng-data ENV DOWNLOAD_MODEL=true # Download model if enabled