CI: Refresh the Debian 12 arm64 container

Rework the container to user heredocs for readability, derive from
bookworm-slim and use apt-get --no-install-recommends to keep the size down.

Additionally:

 * Make it a non-root container.
 * Drop libext2fs-dev which is an x86-only dependency.
 * Add libncurses5-dev for xentop and zlib1g-dev which was missing from the
   libxenguest decompressors.
 * As there's no ninja, the container can no loger build QEMU so drop
   libglib2.0-dev and libpixman-1-dev too.
 * Swap libyajl-dev for libjson-c-dev given the deprecation of the former.

Rename the job to debian-12-arm64-* to follow the naming scheme of all the
other CI jobs.

This reduces the size of the debian:12-arm64v8 from 2.25GB down to 1.62GB.

Signed-off-by: Javi Merino <javi.merino@cloud.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
This commit is contained in:
Javi Merino authored and Andrew Cooper committed 2026-05-29 23:13:02 +01:00
1 parent 81c9fa421d
commit 4d8aa53ed1
5 files changed
+76 -62

No files matched your search

@@ -0,0 +1,69 @@
# syntax=docker/dockerfile:1
FROM --platform=linux/arm64/v8 debian:bookworm-slim
LABEL maintainer.name="The Xen Project"
LABEL maintainer.email="xen-devel@lists.xenproject.org"
ENV DEBIAN_FRONTEND=noninteractive
RUN <<EOF
#!/bin/bash
set -eu
useradd --create-home user
apt-get update
DEPS=(
# Xen
bison
build-essential
checkpolicy
flex
# Tools (general)
ca-certificates
cpio
git-core
pkg-config
wget
# libxenguest dombuilder
libbz2-dev
liblzma-dev
liblzo2-dev
libzstd-dev
zlib1g-dev
# libacpi
acpica-tools
# libxl
libfdt-dev
libjson-c-dev
uuid-dev
# xentop
libncurses5-dev
# Python bindings
python3-dev
python3-setuptools
# Golang bindings
golang-go
# Ocaml bindings/oxenstored
ocaml-nox
ocaml-findlib
# for test phase, qemu-* jobs
busybox-static
curl
device-tree-compiler
expect
file
ovmf
u-boot-qemu
u-boot-tools
)
apt-get -y --no-install-recommends install "${DEPS[@]}"
rm -rf /var/lib/apt/lists*
EOF
USER user
WORKDIR /build
@@ -1,55 +0,0 @@
# syntax=docker/dockerfile:1
FROM --platform=linux/arm64/v8 debian:bookworm
LABEL maintainer.name="The Xen Project" \
maintainer.email="xen-devel@lists.xenproject.org"
ENV DEBIAN_FRONTEND=noninteractive
ENV USER root
RUN mkdir /build
WORKDIR /build
# build depends
RUN apt-get update && \
apt-get --quiet --yes install \
build-essential \
zlib1g-dev \
libncurses5-dev \
python3-dev \
python3-setuptools \
uuid-dev \
libyajl-dev \
libaio-dev \
libglib2.0-dev \
clang \
libpixman-1-dev \
pkg-config \
flex \
bison \
acpica-tools \
libfdt-dev \
bin86 \
bcc \
liblzma-dev \
libnl-3-dev \
ocaml-nox \
libfindlib-ocaml-dev \
markdown \
transfig \
pandoc \
checkpolicy \
wget \
git \
nasm \
# for test phase, qemu-smoke-* jobs
u-boot-qemu \
u-boot-tools \
device-tree-compiler \
curl \
cpio \
busybox-static \
expect \
&& \
apt-get autoremove -y && \
apt-get clean && \
rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
+4 -4
View File
@@ -414,15 +414,15 @@ debian-12-arm32-gcc-debug-mpu:
# Arm builds
debian-bookworm-gcc-arm64:
debian-12-arm64-gcc:
extends: .gcc-arm64-build
variables:
CONTAINER: debian:bookworm-arm64v8
CONTAINER: debian:12-arm64v8
debian-bookworm-gcc-debug-arm64:
debian-12-arm64-gcc-debug:
extends: .gcc-arm64-build-debug
variables:
CONTAINER: debian:bookworm-arm64v8
CONTAINER: debian:12-arm64v8
alpine-3.18-gcc-arm64:
extends: .gcc-arm64-build
+2 -2
View File
@@ -37,7 +37,7 @@
.qemu-arm64:
extends: .test-jobs-common
variables:
CONTAINER: debian:bookworm-arm64v8
CONTAINER: debian:12-arm64v8
LOGFILE: qemu-smoke-arm64.log
artifacts:
paths:
@@ -50,7 +50,7 @@
.qemu-arm32:
extends: .test-jobs-common
variables:
CONTAINER: debian:bookworm-arm64v8
CONTAINER: debian:12-arm64v8
LOGFILE: qemu-smoke-arm32.log
artifacts:
paths:
+1 -1
View File
@@ -39,7 +39,7 @@ case "_${CONTAINER}" in
_trixie-x86_64|_) CONTAINER="${BASE}/debian:13-x86_64" ;;
_bookworm-i386|_bookworm-x86_32) CONTAINER="${BASE}/debian:12-x86_32" ;;
_bookworm-arm64v8-arm32) CONTAINER="${BASE}/debian:12-arm64v8-arm32" ;;
_bookworm-arm64v8) CONTAINER="${BASE}/debian:bookworm-arm64v8" ;;
_bookworm-arm64v8) CONTAINER="${BASE}/debian:12-arm64v8" ;;
_bookworm-cppcheck) CONTAINER="${BASE}/debian:12-arm64v8-cppcheck" ;;
_opensuse-leap|_leap) CONTAINER="${BASE}/opensuse:leap-15.6-x86_64" ;;
_opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/opensuse:tumbleweed-x86_64" ;;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.