Rework the container to use heredocs for readability, and use apt-get --no-install-recommends to keep the size down.
This reduces the size of the (uncompressed) container from 3.44GB to 1.67GB. Signed-off-by: Javi Merino <javi.mer...@cloud.com> --- automation/build/debian/12-x86_64.dockerfile | 68 ++++++++++++++++++++ automation/build/debian/bookworm.dockerfile | 57 ---------------- automation/gitlab-ci/build.yaml | 20 +++--- automation/gitlab-ci/test.yaml | 14 ++-- automation/scripts/containerize | 2 +- 5 files changed, 86 insertions(+), 75 deletions(-) create mode 100644 automation/build/debian/12-x86_64.dockerfile delete mode 100644 automation/build/debian/bookworm.dockerfile diff --git a/automation/build/debian/12-x86_64.dockerfile b/automation/build/debian/12-x86_64.dockerfile new file mode 100644 index 000000000000..e0ca8b7e9c91 --- /dev/null +++ b/automation/build/debian/12-x86_64.dockerfile @@ -0,0 +1,68 @@ +# syntax=docker/dockerfile:1 +FROM --platform=linux/amd64 debian:bookworm +LABEL maintainer.name="The Xen Project" \ + maintainer.email="xen-devel@lists.xenproject.org" + +ENV DEBIAN_FRONTEND=noninteractive + +# build depends +RUN <<EOF +#!/bin/bash + set -eu + + apt-get update + DEPS=( + # Xen + bison + build-essential + checkpolicy + clang + flex + + # Tools (general) + ca-certificates + expect + git-core + libnl-3-dev + pkg-config + wget + # libxenguest dombuilder + liblzma-dev + zlib1g-dev + # libacpi + acpica-tools + # libxl + uuid-dev + libyajl-dev + # RomBIOS + bcc + bin86 + # xentop + libncurses5-dev + # Python bindings + python3-dev + python3-setuptools + # Ocaml bindings/oxenstored + ocaml-nox + ocaml-findlib + # To build the documentation + pandoc + + # for test phase, qemu-smoke-* jobs + qemu-system-x86 + + # for qemu-alpine-x86_64-gcc + busybox-static + cpio + + # For *-efi jobs + ovmf + ) + + apt-get -y --no-install-recommends install "${DEPS[@]}" + + rm -rf /var/lib/apt/lists* +EOF + +USER root +WORKDIR /build diff --git a/automation/build/debian/bookworm.dockerfile b/automation/build/debian/bookworm.dockerfile deleted file mode 100644 index 72e01aa58b55..000000000000 --- a/automation/build/debian/bookworm.dockerfile +++ /dev/null @@ -1,57 +0,0 @@ -# syntax=docker/dockerfile:1 -FROM --platform=linux/amd64 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 \ - bin86 \ - bcc \ - liblzma-dev \ - libnl-3-dev \ - ocaml-nox \ - libfindlib-ocaml-dev \ - markdown \ - transfig \ - pandoc \ - checkpolicy \ - wget \ - git \ - nasm \ - gnupg \ - apt-transport-https \ - golang \ - # for test phase, qemu-smoke-* jobs - qemu-system-x86 \ - expect \ - # For *-efi jobs - ovmf \ - # for test phase, qemu-alpine-* jobs - cpio \ - busybox-static \ - && \ - apt-get autoremove -y && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/* diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml index 09dd9e6ccbd0..eb2c23619a2c 100644 --- a/automation/gitlab-ci/build.yaml +++ b/automation/gitlab-ci/build.yaml @@ -341,15 +341,15 @@ alpine-3.18-gcc-debug: CONTAINER: alpine:3.18 BUILD_QEMU_XEN: y -debian-bookworm-gcc-debug: +debian-12-x86_64-gcc-debug: extends: .gcc-x86-64-build-debug variables: - CONTAINER: debian:bookworm + CONTAINER: debian:12-x86_64 -debian-bookworm-clang-debug: +debian-12-x86_64-clang-debug: extends: .clang-x86-64-build-debug variables: - CONTAINER: debian:bookworm + CONTAINER: debian:12-x86_64 debian-12-ppc64le-gcc-debug: extends: .gcc-ppc64le-cross-build-debug @@ -553,20 +553,20 @@ debian-12-x86_64-gcc-ibt: EXTRA_FIXED_RANDCONFIG: | CONFIG_XEN_IBT=y -debian-bookworm-clang: +debian-12-x86_64-clang: extends: .clang-x86-64-build variables: - CONTAINER: debian:bookworm + CONTAINER: debian:12-x86_64 -debian-bookworm-gcc: +debian-12-x86_64-gcc: extends: .gcc-x86-64-build variables: - CONTAINER: debian:bookworm + CONTAINER: debian:12-x86_64 -debian-bookworm-gcc-randconfig: +debian-12-x86_64-gcc-randconfig: extends: .gcc-x86-64-build variables: - CONTAINER: debian:bookworm + CONTAINER: debian:12-x86_64 RANDCONFIG: y debian-bookworm-32-clang-debug: diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml index e76a37bef32d..0812ddb42d9b 100644 --- a/automation/gitlab-ci/test.yaml +++ b/automation/gitlab-ci/test.yaml @@ -43,7 +43,7 @@ .qemu-x86-64: extends: .test-jobs-common variables: - CONTAINER: debian:bookworm + CONTAINER: debian:12-x86_64 LOGFILE: qemu-smoke-x86-64.log artifacts: paths: @@ -155,7 +155,7 @@ build-each-commit-gcc: extends: .test-jobs-common variables: - CONTAINER: debian:bookworm + CONTAINER: debian:12-x86_64 XEN_TARGET_ARCH: x86_64 CC: gcc script: @@ -461,35 +461,35 @@ qemu-smoke-x86-64-gcc: script: - ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE} needs: - - debian-bookworm-gcc-debug + - debian-12-x86_64-gcc-debug qemu-smoke-x86-64-clang: extends: .qemu-smoke-x86-64 script: - ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE} needs: - - debian-bookworm-clang-debug + - debian-12-x86_64-clang-debug qemu-smoke-x86-64-gcc-pvh: extends: .qemu-smoke-x86-64 script: - ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee ${LOGFILE} needs: - - debian-bookworm-gcc-debug + - debian-12-x86_64-gcc-debug qemu-smoke-x86-64-clang-pvh: extends: .qemu-smoke-x86-64 script: - ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee ${LOGFILE} needs: - - debian-bookworm-clang-debug + - debian-12-x86_64-clang-debug qemu-smoke-x86-64-gcc-efi: extends: .qemu-smoke-x86-64 script: - ./automation/scripts/qemu-smoke-x86-64-efi.sh pv 2>&1 | tee ${LOGFILE} needs: - - debian-bookworm-gcc-debug + - debian-12-x86_64-gcc-debug qemu-smoke-riscv64-gcc: extends: .qemu-riscv64 diff --git a/automation/scripts/containerize b/automation/scripts/containerize index 6ac02c42d124..ea6e1a9b18f4 100755 --- a/automation/scripts/containerize +++ b/automation/scripts/containerize @@ -34,7 +34,7 @@ case "_${CONTAINER}" in _bullseye-riscv64) CONTAINER="${BASE}/debian:11-riscv64" ;; _bookworm-riscv64) CONTAINER="${BASE}/debian:12-riscv64" ;; _bookworm-x86_64-gcc-ibt) CONTAINER="${BASE}/debian:12-x86_64-gcc-ibt" ;; - _bookworm|_) CONTAINER="${BASE}/debian:bookworm" ;; + _bookworm|_bookworm-x86_64|_) CONTAINER="${BASE}/debian:12-x86_64" ;; _bookworm-i386) CONTAINER="${BASE}/debian:bookworm-i386" ;; _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:bookworm-arm64v8-arm32-gcc" ;; _bookworm-arm64v8) CONTAINER="${BASE}/debian:bookworm-arm64v8" ;; -- 2.45.2