diff --git a/docker-builders/VulkanSDK.Dockerfile b/docker-builders/VulkanSDK.Dockerfile index ce42da579..54b8d0902 100644 --- a/docker-builders/VulkanSDK.Dockerfile +++ b/docker-builders/VulkanSDK.Dockerfile @@ -1,6 +1,6 @@ -FROM amd64/ubuntu:20.04 +FROM ubuntu:20.04 as sdk-builder -ARG VULKAN_SDK_VERSION=1.2.154.0 +ARG VULKAN_SDK_VERSION # First install vulkan RUN apt-get update @@ -10,11 +10,11 @@ RUN wget -O VulkanSDK.tar.gz https://sdk.lunarg.com/sdk/download/${VULKAN_SDK_VE cd VulkanSDK && \ tar xvf /VulkanSDK.tar.gz -RUN cd VulkanSDK/${VULKAN_SDK_VERSION} -ENV VULKAN_SDK="/VulkanSDK/${VULKAN_SDK_VERSION}/x86_64" -ENV PATH="${VULKAN_SDK}/bin:${PATH}" -ENV LD_LIBRARY_PATH="${VULKAN_SDK}/lib" -ENV VK_LAYER_PATH="${VULKAN_SDK}/etc/explicit_layer.d" +RUN cd VulkanSDK/${VULKAN_SDK_VERSION} +ENV VULKAN_SDK="/VulkanSDK/${VULKAN_SDK_VERSION}/x86_64" +ENV PATH="${VULKAN_SDK}/bin:${PATH}" +ENV LD_LIBRARY_PATH="${VULKAN_SDK}/lib" +ENV VK_LAYER_PATH="${VULKAN_SDK}/etc/explicit_layer.d" # Configure dependencies required to setup external apt-repos RUN apt-get install \ @@ -37,26 +37,45 @@ RUN apt-get install -y libssl1.0-dev RUN apt-get install -y cmake g++ RUN apt-get install -y libglm-dev libxcb-dri3-0 libxcb-present0 RUN apt-get install -y libpciaccess0 libpng-dev libxcb-keysyms1-dev -RUN apt-get install -y libxcb-dri3-dev libx11-dev libmirclient-dev +RUN apt-get install -y libxcb-dri3-dev +RUN apt-get install -y libx11-dev RUN apt-get install -y libwayland-dev libxrandr-dev RUN apt-get install -y wget RUN apt-get install -y libglfw3-dev RUN apt-get install -y git RUN apt-get install -y python python3-pip +RUN apt-get install -y wayland-protocols + +# Rerun update & upgrade to download libmirclient +RUN apt-get upgrade -y +RUN apt-get update --fix-missing -y +RUN apt-get install -y libmirclient-dev RUN apt-get install -y zip pkg-config -RUN apt-get install xxd +RUN apt-get install -y ninja-build +RUN apt-get install -y qt5-default +RUN apt-get install -y qt5-qmake -RUN mkdir /core -WORKDIR /core -RUN git clone https://github.com/microsoft/vcpkg -RUN ./vcpkg/bootstrap-vcpkg.sh -ENV VCPKG_PATH=/core/vcpkg -ENV VCPKG_ROOT=/core/vcpkg +# Python deps +RUN pip install jsonschema -# INstall dependencies for kompute -RUN /core/vcpkg/vcpkg install fmt spdlog vulkan-headers gtest +RUN /VulkanSDK/${VULKAN_SDK_VERSION}/vulkansdk -j $(nproc) + +# Cleanup to reduce image size +RUN rm -rf /VulkanSDK/${VULKAN_SDK_VERSION}/source RUN mkdir /workspace WORKDIR /workspace +# Store build in slim down image (reduce from 16GB to 1GB) +FROM ubuntu:20.04 + +ARG VULKAN_SDK_VERSION + +ENV VULKAN_SDK="/VulkanSDK/${VULKAN_SDK_VERSION}/x86_64" +ENV PATH="${VULKAN_SDK}/bin:${PATH}" +ENV LD_LIBRARY_PATH="${VULKAN_SDK}/lib" +ENV VK_LAYER_PATH="${VULKAN_SDK}/etc/explicit_layer.d" + +COPY --from=sdk-builder ${VULKAN_SDK} ${VULKAN_SDK} +