Skip to content

Commit 5286994

Browse files
authored
chore: verify signatures for apt keys (#1104)
1 parent bf5fcdc commit 5286994

2 files changed

Lines changed: 25 additions & 16 deletions

File tree

.devcontainer/base/Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ RUN --mount=type=bind,source=.devcontainer/base/apt-requirements.json,target=/tm
3535
--mount=type=cache,target=/var/log,sharing=locked \
3636
--mount=from=extractor,target=/src <<EOF
3737

38+
set -e
39+
3840
# Install the base system with all tool dependencies
3941
apt-get update && apt-get install -y --no-install-recommends jq
4042
jq -r 'to_entries | .[] | .key + "=" + .value' /tmp/apt-requirements.json | \

.devcontainer/cpp/Dockerfile

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ ADD --checksum=sha256:b85cd1e0c94f249338b02a6e54b380154a5af6b5dd754121b15722125a
3232
# trivy:ignore:AVD-DS-0001
3333
FROM downloader-${TARGETARCH} AS downloader
3434

35+
ADD --checksum=sha256:ce6eee4130298f79b0e0f09a89f93c1bc711cd68e7e3182d37c8e96c5227e2f0 \
36+
https://apt.llvm.org/llvm-snapshot.gpg.key /llvm.gpg.key
37+
ADD --checksum=sha256:db2938ce5fd422f2db7a07508452772c945135d99274004c462190c323fefcf1 \
38+
https://dl.cloudsmith.io/public/mull-project/mull-stable/gpg.41DB35380DE6BD6F.key /mull.gpg.key
39+
3540
# Extractor stage using target architecture specific downloader
3641
FROM ${BASE_IMAGE} AS extractor
3742

@@ -41,8 +46,11 @@ ARG XWIN_VERSION
4146
WORKDIR /
4247

4348
RUN --mount=from=downloader,target=/dl <<EOF
49+
set -e
4450
tar xJf /dl/ccache.tar.xz --strip-components=1 "ccache-${CCACHE_VERSION}-linux-$(uname -m)/ccache"
4551
tar xzf /dl/xwin.tar.gz --strip-components=1 "xwin-${XWIN_VERSION}-$(uname -m)-unknown-linux-musl/xwin"
52+
cp /dl/llvm.gpg.key /llvm.gpg.key
53+
cp /dl/mull.gpg.key /mull.gpg.key
4654
EOF
4755

4856
# Final development container image
@@ -70,16 +78,18 @@ ENV CCACHE_DIR=/cache/.ccache \
7078
# Install the base system with all tool dependencies
7179
# hadolint ignore=DL3008
7280
RUN --mount=type=bind,source=.devcontainer/cpp/apt-requirements-base.json,target=/tmp/apt-requirements-base.json \
81+
--mount=type=bind,source=.devcontainer/cpp/apt-requirements-clang.json,target=/tmp/apt-requirements-clang.json \
7382
--mount=type=bind,source=.devcontainer/cpp/requirements.txt,target=/tmp/requirements.txt \
7483
--mount=type=cache,target=/cache,sharing=locked \
7584
--mount=type=cache,target=/var/cache/apt,sharing=locked \
7685
--mount=type=cache,target=/var/lib/apt,sharing=locked \
7786
--mount=type=cache,target=/var/log,sharing=locked \
7887
--mount=from=extractor,target=/src <<EOF
7988

89+
set -e
90+
8091
# Install the base system with all tool dependencies
81-
apt-get update && \
82-
jq -r 'to_entries | .[] | .key + "=" + .value' /tmp/apt-requirements-base.json | \
92+
apt-get update && jq -r 'to_entries | .[] | .key + "=" + .value' /tmp/apt-requirements-base.json | \
8393
xargs apt-get install -y --no-install-recommends
8494

8595
# Install some tools via pip to get more recent versions, clean up afterwards
@@ -90,21 +100,18 @@ RUN --mount=type=bind,source=.devcontainer/cpp/apt-requirements-base.json,target
90100
# Install ccache and xwin
91101
cp /src/ccache /usr/local/bin/ccache
92102
cp /src/xwin /usr/local/bin/xwin
93-
EOF
94103

95-
# Install clang toolchain and mull mutation testing framework
96-
RUN --mount=type=bind,source=.devcontainer/cpp/apt-requirements-clang.json,target=/tmp/apt-requirements-clang.json \
97-
--mount=type=cache,target=/var/cache/apt,sharing=locked \
98-
--mount=type=cache,target=/var/lib/apt,sharing=locked \
99-
--mount=type=cache,target=/var/log,sharing=locked \
100-
wget --no-hsts -qO - https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor -o /usr/share/keyrings/llvm-snapshot-keyring.gpg \
101-
&& wget --no-hsts -qO - https://dl.cloudsmith.io/public/mull-project/mull-stable/gpg.41DB35380DE6BD6F.key | gpg --dearmor -o /usr/share/keyrings/mull-project-mull-stable-archive-keyring.gpg \
102-
&& UBUNTU_CODENAME=$(grep '^UBUNTU_CODENAME=' /etc/os-release | cut -d= -f2) \
103-
&& echo "deb [signed-by=/usr/share/keyrings/llvm-snapshot-keyring.gpg] http://apt.llvm.org/${UBUNTU_CODENAME}/ llvm-toolchain-${UBUNTU_CODENAME}-${CLANG_VERSION} main" | tee /etc/apt/sources.list.d/llvm.list > /dev/null \
104-
&& echo "deb [signed-by=/usr/share/keyrings/mull-project-mull-stable-archive-keyring.gpg] https://dl.cloudsmith.io/public/mull-project/mull-stable/deb/ubuntu ${UBUNTU_CODENAME} main" | tee /etc/apt/sources.list.d/mull-project-mull-stable.list > /dev/null \
105-
&& echo -e 'Package: *\nPin: origin "apt.llvm.org"\nPin-Priority: 1000' > /etc/apt/preferences \
106-
&& apt-get update \
107-
&& jq -r 'to_entries | .[] | .key + "=" + .value' /tmp/apt-requirements-clang.json | xargs apt-get install -y --no-install-recommends
104+
# Install clang toolchain and mull mutation testing framework
105+
cat /src/llvm.gpg.key | gpg --dearmor -o /usr/share/keyrings/llvm-snapshot-keyring.gpg
106+
cat /src/mull.gpg.key | gpg --dearmor -o /usr/share/keyrings/mull-project-mull-stable-archive-keyring.gpg
107+
108+
UBUNTU_CODENAME=$(grep '^UBUNTU_CODENAME=' /etc/os-release | cut -d= -f2)
109+
echo "deb [signed-by=/usr/share/keyrings/llvm-snapshot-keyring.gpg] http://apt.llvm.org/${UBUNTU_CODENAME}/ llvm-toolchain-${UBUNTU_CODENAME}-${CLANG_VERSION} main" | tee /etc/apt/sources.list.d/llvm-snapshot.list > /dev/null
110+
echo "deb [signed-by=/usr/share/keyrings/mull-project-mull-stable-archive-keyring.gpg] https://dl.cloudsmith.io/public/mull-project/mull-stable/deb/ubuntu ${UBUNTU_CODENAME} main" | tee /etc/apt/sources.list.d/mull-project-mull-stable.list > /dev/null
111+
echo -e 'Package: *\nPin: origin "apt.llvm.org"\nPin-Priority: 1000' > /etc/apt/preferences
112+
apt-get update && jq -r 'to_entries | .[] | .key + "=" + .value' /tmp/apt-requirements-clang.json | \
113+
xargs apt-get install -y --no-install-recommends
114+
EOF
108115

109116
# Install arm-gcc toolchain
110117
RUN mkdir /opt/gcc-arm-none-eabi \

0 commit comments

Comments
 (0)