@@ -18,14 +18,15 @@ ENV CCACHE_DIR=/cache/.ccache \
1818 CMAKE_EXPORT_COMPILE_COMMANDS="On" \
1919 CMAKE_GENERATOR="Ninja" \
2020 CONAN_HOME=/opt/conan \
21- CPM_SOURCE_CACHE=/cache/.cpm-cache \
21+ CPM_SOURCE_CACHE=/cache/.cpm \
2222 PATH="$PATH:/usr/lib/llvm-${CLANG_VERSION}/bin:/opt/gcc-arm-none-eabi/bin" \
23- PYTHONPYCACHEPREFIX=/cache/python
23+ PYTHONPYCACHEPREFIX=/cache/. python
2424
2525# Install the base system with all tool dependencies
2626# hadolint ignore=DL3008
2727RUN --mount=type=bind,source=.devcontainer/cpp/apt-requirements-base.json,target=/tmp/apt-requirements-base.json \
2828 --mount=type=bind,source=.devcontainer/cpp/requirements.txt,target=/tmp/requirements.txt \
29+ --mount=type=cache,target=/cache,sharing=locked \
2930 --mount=type=cache,target=/var/cache/apt,sharing=locked \
3031 --mount=type=cache,target=/var/lib/apt,sharing=locked \
3132 --mount=type=cache,target=/var/log,sharing=locked \
@@ -36,8 +37,7 @@ RUN --mount=type=bind,source=.devcontainer/cpp/apt-requirements-base.json,target
3637 && wget -qO /usr/local/share/ca-certificates/Cisco_Umbrella_Root_CA.crt https://www.cisco.com/security/pki/certs/ciscoumbrellaroot.pem \
3738 && update-ca-certificates \
3839 # Install some tools via pip to get more recent versions
39- && python3 -m pip install --break-system-packages --require-hashes --no-cache-dir --no-compile -r /tmp/requirements.txt \
40- && rm -rf /cache/python/*
40+ && python3 -m pip install --break-system-packages --require-hashes --no-cache-dir --no-compile -r /tmp/requirements.txt
4141
4242# Install clang toolchain and mull mutation testing framework
4343RUN --mount=type=bind,source=.devcontainer/cpp/apt-requirements-clang.json,target=/tmp/apt-requirements-clang.json \
@@ -71,15 +71,16 @@ RUN wget -qO - "https://github.com/Jake-Shadle/xwin/releases/download/${XWIN_VER
7171
7272# Compile and install additional clang tools; often necessary as binary arm64 builds are lacking, or packages are out-of-date
7373# Install ccache from source for a recent version
74- RUN --mount=type=cache,target=/tmp ,sharing=locked,mode=1777 \
74+ RUN --mount=type=cache,target=/cache ,sharing=locked \
7575 wget -qO - https://github.com/ccache/ccache/archive/refs/tags/v${CCACHE_VERSION}.tar.gz | tar xz -C /tmp \
7676 && CC=clang CXX=clang++ cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_TESTING=Off -DENABLE_DOCUMENTATION=Off -S /tmp/ccache-${CCACHE_VERSION} -B /tmp/ccache-${CCACHE_VERSION}/build \
7777 && cmake --build /tmp/ccache-${CCACHE_VERSION}/build --target install \
7878 && rm -rf /tmp/ccache-${CCACHE_VERSION}
7979
8080# Install include-what-you-use (iwyu) from source
8181# hadolint ignore=DL3008
82- RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
82+ RUN --mount=type=cache,target=/cache,sharing=locked \
83+ --mount=type=cache,target=/var/cache/apt,sharing=locked \
8384 --mount=type=cache,target=/var/lib/apt,sharing=locked \
8485 apt-get update && apt-get install -y --no-install-recommends libclang-${CLANG_VERSION}-dev llvm-${CLANG_VERSION}-dev \
8586 && wget -qO - https://github.com/include-what-you-use/include-what-you-use/archive/refs/tags/${INCLUDE_WHAT_YOU_USE_VERSION}.tar.gz | tar xz -C /tmp \
@@ -108,6 +109,7 @@ RUN --mount=type=cache,target=/var/log,sharing=locked \
108109# Set up package managers CPM and Conan
109110# - Install CPM.cmake to the CMake module path
110111# - Configure a default profile for Conan and set the CMake generator to Ninja
111- RUN wget -qP /usr/local/lib/python*/dist-packages/cmake/data/share/cmake-*/Modules/ https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_VERSION}/CPM.cmake \
112+ RUN --mount=type=cache,target=/cache,sharing=locked \
113+ wget -qP /usr/local/lib/python*/dist-packages/cmake/data/share/cmake-*/Modules/ https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_VERSION}/CPM.cmake \
112114 && conan profile detect \
113115 && echo -e "\n [conf]\n tools.cmake.cmaketoolchain:generator=Ninja" >> "$(conan profile path default)"
0 commit comments