Skip to content

Commit f58d51d

Browse files
committed
chore: keep cache empty during entire build
1 parent 17f8ada commit f58d51d

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

.devcontainer/cpp/Dockerfile

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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
2727
RUN --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
4343
RUN --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]\ntools.cmake.cmaketoolchain:generator=Ninja" >> "$(conan profile path default)"

0 commit comments

Comments
 (0)