Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 12 additions & 6 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,12 @@ ENV UPPER_CONSTRAINTS_FILE=${UPPER_CONSTRAINTS_FILE} \

RUN --mount=type=cache,sharing=locked,target=/var/cache/dnf <<EORUN
set -euxo pipefail
echo "install_weak_deps=False" >> /etc/dnf/dnf.conf
echo "tsflags=nodocs" >> /etc/dnf/dnf.conf
echo "keepcache=1" >> /etc/dnf/dnf.conf
rm -f /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Extras /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial-PQC
# Find keys; if the list is empty, fail the build immediately
KEYS=$(find /etc/pki/rpm-gpg/ -name "RPM-GPG-KEY-cento*")
if [ -z "$KEYS" ]; then echo "ERROR: No CentOS GPG keys found in /etc/pki/rpm-gpg/"; exit 1; fi
echo "$KEYS" | xargs rpm --import
printf "[main]\ngpgcheck=1\ninstall_weak_deps=0\ntsflags=nodocs\nkeepcache=1\n" > /etc/dnf/dnf.conf
microdnf install -y \
gcc \
python3.12-devel \
Expand Down Expand Up @@ -69,9 +72,12 @@ ENV IRONIC_SOURCE=${IRONIC_SOURCE} \

RUN --mount=type=cache,sharing=locked,target=/var/cache/dnf <<EORUN
set -euxo pipefail
echo "install_weak_deps=False" >> /etc/dnf/dnf.conf
echo "tsflags=nodocs" >> /etc/dnf/dnf.conf
echo "keepcache=1" >> /etc/dnf/dnf.conf
rm -f /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Extras /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial-PQC
# Find keys; if the list is empty, fail the build immediately
KEYS=$(find /etc/pki/rpm-gpg/ -name "RPM-GPG-KEY-cento*")
if [ -z "$KEYS" ]; then echo "ERROR: No CentOS GPG keys found in /etc/pki/rpm-gpg/"; exit 1; fi
echo "$KEYS" | xargs rpm --import
printf "[main]\ngpgcheck=1\ninstall_weak_deps=0\ntsflags=nodocs\nkeepcache=1\n" > /etc/dnf/dnf.conf
microdnf install -y \
gcc \
git-core \
Expand Down
27 changes: 22 additions & 5 deletions prepare-image.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,28 @@

set -euxo pipefail

cat >> /etc/dnf/dnf.conf<< EOF
install_weak_deps=False
tsflags=nodocs
keepcache=1
EOF
# --- Universal CentOS 9/10 GPG Key Import ---
echo "Configuring GPG keys for package verification..."

# 1. Purge problematic keys
rm -f /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Extras /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial-PQC

# 2. Collect and import official keys
mapfile -t GPG_KEYS < <(find /etc/pki/rpm-gpg/ -name "RPM-GPG-KEY-cento*")

if [ ${#GPG_KEYS[@]} -eq 0 ]; then
echo "ERROR: No CentOS GPG keys found to import. GPG verification will fail."
exit 1
fi

for KEY in "${GPG_KEYS[@]}"; do
echo "Importing key: $KEY"
rpm --import "$KEY"
done

# 3. Synchronize DNF configuration
printf "[main]\ngpgcheck=1\ninstall_weak_deps=0\ntsflags=nodocs\nkeepcache=1\n" > /etc/dnf/dnf.conf
# --------------------------------------------

# emulate uid/gid configuration to match rpm install
IRONIC_UID=997
Expand Down
Loading