diff --git a/.github/workflows/image-pr.yml b/.github/workflows/image-pr.yml index 0a3ed2708a6f..cfaf3e439f83 100644 --- a/.github/workflows/image-pr.yml +++ b/.github/workflows/image-pr.yml @@ -64,7 +64,7 @@ jobs: runs-on: 'ubuntu-latest' makeflags: "--jobs=3 --output-sync=target" - build-type: 'vulkan' - platforms: 'linux/amd64' + platforms: 'linux/amd64,linux/arm64' tag-latest: 'false' tag-suffix: '-vulkan-ffmpeg-core' ffmpeg: 'true' diff --git a/.github/workflows/image.yml b/.github/workflows/image.yml index 7339038c3583..1fb3ce0f8696 100644 --- a/.github/workflows/image.yml +++ b/.github/workflows/image.yml @@ -107,7 +107,7 @@ jobs: makeflags: "--jobs=4 --output-sync=target" aio: "-aio-gpu-nvidia-cuda-12" - build-type: 'vulkan' - platforms: 'linux/amd64' + platforms: 'linux/amd64,linux/arm64' tag-latest: 'auto' tag-suffix: '-vulkan' ffmpeg: 'true' diff --git a/Dockerfile b/Dockerfile index 1a3f92e5210f..96b0d268fa3a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -31,15 +31,28 @@ RUN < /run/localai/capability + software-properties-common pciutils sudo wget gpg-agent curl xz-utils && \ + echo "vulkan" > /run/localai/capability && \ + if [ "amd64" = "$TARGETARCH" ]; then + wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | apt-key add - && \ + wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list && \ + apt-get update && \ + apt-get install -y \ + vulkan-sdk && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + fi + if [ "arm64" = "$TARGETARCH" ]; then + # For ARM64, we need to build the Vulkan SDK manually as there are no packages available + mkdir vulkan && cd vulkan && curl -o vulkan-sdk.tar.xz https://sdk.lunarg.com/sdk/download/latest/linux/vulkan-sdk.tar.xz && \ + tar -xJf vulkan-sdk.tar.xz && \ + rm vulkan-sdk.tar.xz && \ + cd * && \ + sed -i 's/apt-get install/apt-get install -y/' vulkansdk && \ + ./vulkansdk -j 1 && \ + cd ../.. && \ + rm -rf vulkan + fi fi EOT