Multiarch support

This commit is contained in:
remsky 2025-01-23 14:39:06 -07:00
parent 44724b2035
commit 31b5e33408
3 changed files with 22 additions and 23 deletions

View file

@ -9,25 +9,28 @@ 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
# Create and use a new builder that supports multi-platform builds
docker buildx create --name multiplatform-builder --use || true
# Build GPU image
# Build CPU image with multi-platform support
echo "Building CPU image..."
docker buildx build --platform linux/amd64,linux/arm64 \
-t ${REGISTRY}/${OWNER}/${REPO}-cpu:${VERSION} \
-t ${REGISTRY}/${OWNER}/${REPO}-cpu:latest \
-f docker/cpu/Dockerfile \
--push .
# Build GPU image with multi-platform support
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
docker buildx build --platform linux/amd64,linux/arm64 \
-t ${REGISTRY}/${OWNER}/${REPO}-gpu:${VERSION} \
-t ${REGISTRY}/${OWNER}/${REPO}-gpu:latest \
-f docker/gpu/Dockerfile \
--push .
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"
echo "- ${REGISTRY}/${OWNER}/${REPO}-cpu:${VERSION} (linux/amd64, linux/arm64)"
echo "- ${REGISTRY}/${OWNER}/${REPO}-cpu:latest (linux/amd64, linux/arm64)"
echo "- ${REGISTRY}/${OWNER}/${REPO}-gpu:${VERSION} (linux/amd64, linux/arm64)"
echo "- ${REGISTRY}/${OWNER}/${REPO}-gpu:latest (linux/amd64, linux/arm64)"

View file

@ -1,4 +1,4 @@
FROM python:3.10-slim
FROM --platform=$BUILDPLATFORM python:3.10-slim
# Install dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
@ -35,10 +35,6 @@ RUN --mount=type=cache,target=/root/.cache/uv \
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
# Install project
RUN --mount=type=cache,target=/root/.cache/uv \
uv sync --extra cpu

View file

@ -1,4 +1,4 @@
FROM nvidia/cuda:12.3.2-cudnn9-runtime-ubuntu22.04
FROM --platform=$BUILDPLATFORM nvidia/cuda:12.3.2-cudnn9-runtime-ubuntu22.04
# Set non-interactive frontend
ENV DEBIAN_FRONTEND=noninteractive