Replaced apt packages with LunarG's Vulkan SDK
build-ci-image / image (push) Failing after 2m33s

This commit is contained in:
2026-05-06 01:52:35 +03:00
parent 113e8c71b4
commit 1f029fd69b
2 changed files with 25 additions and 27 deletions
+22 -25
View File
@@ -11,7 +11,6 @@ FROM ${BASE_IMAGE}
ARG LLVM_VERSION=22 ARG LLVM_VERSION=22
ARG MESON_VERSION=latest ARG MESON_VERSION=latest
ARG USE_LUNARG_VULKAN=false
ARG LUNARG_SDK_VERSION=1.4.309.0 ARG LUNARG_SDK_VERSION=1.4.309.0
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
@@ -21,10 +20,14 @@ ENV AR=llvm-ar
ENV RANLIB=llvm-ranlib ENV RANLIB=llvm-ranlib
ENV NM=llvm-nm ENV NM=llvm-nm
ENV STRIP=llvm-strip ENV STRIP=llvm-strip
ENV VULKAN_SDK=/opt/vulkan-sdk/current/x86_64
ENV PATH="${VULKAN_SDK}/bin:${PATH}"
ENV LD_LIBRARY_PATH="${VULKAN_SDK}/lib:${LD_LIBRARY_PATH}"
ENV PKG_CONFIG_PATH="${VULKAN_SDK}/lib/pkgconfig:${PKG_CONFIG_PATH}"
SHELL ["/bin/bash", "-o", "pipefail", "-c"] SHELL ["/bin/bash", "-o", "pipefail", "-c"]
# Base compiler/build/Python/Vulkan packages from Ubuntu. # Base compiler/build/Python packages from Ubuntu.
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
set -eux; \ set -eux; \
apt-get update; \ apt-get update; \
@@ -50,15 +53,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
ninja-build \ ninja-build \
cmake \ cmake \
gcovr \ gcovr \
valgrind \ valgrind; \
libvulkan-dev \
libshaderc-dev \
vulkan-tools \
vulkan-validationlayers \
mesa-vulkan-drivers \
glslang-tools \
spirv-tools \
spirv-headers; \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
# LLVM/Clang from apt.llvm.org. # LLVM/Clang from apt.llvm.org.
@@ -82,20 +77,19 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
"llvm-${LLVM_VERSION}-tools"; \ "llvm-${LLVM_VERSION}-tools"; \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
# Optional LunarG Vulkan SDK repo. Disabled by default because Ubuntu distro # LunarG Vulkan SDK from the official tarball.
# Vulkan packages are more stable for CI and usually enough for building/testing. RUN --mount=type=cache,target=/root/.cache/vulkan-sdk \
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
set -eux; \ set -eux; \
if [ "${USE_LUNARG_VULKAN}" = "true" ]; then \ sdk_archive="/root/.cache/vulkan-sdk/vulkansdk-linux-x86_64-${LUNARG_SDK_VERSION}.tar.xz"; \
codename="$(. /etc/os-release && echo "${VERSION_CODENAME}")"; \ if [ ! -f "${sdk_archive}" ]; then \
curl -fsSL https://packages.lunarg.com/lunarg-signing-key-pub.asc \ curl -fL "https://sdk.lunarg.com/sdk/download/${LUNARG_SDK_VERSION}/linux/vulkansdk-linux-x86_64-${LUNARG_SDK_VERSION}.tar.xz" \
| gpg --dearmor -o /usr/share/keyrings/lunarg.gpg; \ -o "${sdk_archive}"; \
echo "deb [signed-by=/usr/share/keyrings/lunarg.gpg] https://packages.lunarg.com/vulkan/${LUNARG_SDK_VERSION}/ubuntu ${codename} main" \ fi; \
> /etc/apt/sources.list.d/lunarg-vulkan-sdk.list; \ mkdir -p /opt/vulkan-sdk; \
apt-get update; \ tar -xJf "${sdk_archive}" -C /opt/vulkan-sdk; \
apt-get install -y --no-install-recommends vulkan-sdk; \ ln -sfn "/opt/vulkan-sdk/${LUNARG_SDK_VERSION}" /opt/vulkan-sdk/current; \
rm -rf /var/lib/apt/lists/*; \ echo "${VULKAN_SDK}/lib" > /etc/ld.so.conf.d/vulkan-sdk.conf; \
fi ldconfig
# Make LLVM_VERSION the default clang toolchain. # Make LLVM_VERSION the default clang toolchain.
RUN set -eux; \ RUN set -eux; \
@@ -127,6 +121,9 @@ RUN set -eux; \
clang --version; \ clang --version; \
clang++ --version; \ clang++ --version; \
meson --version; \ meson --version; \
ninja --version ninja --version; \
glslangValidator --version; \
spirv-val --version; \
pkg-config --modversion vulkan
CMD ["bash"] CMD ["bash"]
+3 -2
View File
@@ -24,8 +24,7 @@ Included tools:
- Meson - Meson
- Ninja - Ninja
- Python 3 / pip / venv - Python 3 / pip / venv
- Vulkan headers/tools - LunarG Vulkan SDK headers/tools
- Mesa Vulkan drivers
- `build-essential` - `build-essential`
- `pkg-config` - `pkg-config`
- Git - Git
@@ -34,6 +33,8 @@ Included tools:
```bash ```bash
docker build -t evol-testbed:latest . docker build -t evol-testbed:latest .
# Optional: choose a different LunarG Vulkan SDK version
# docker build --build-arg LUNARG_SDK_VERSION=1.4.309.0 -t evol-testbed:latest .
``` ```
Test locally: Test locally: