[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] CI: Formalise the use of heredocs
commit aa2b6e4d8447a3bb4a538bbae430d00efb77cd8e Author: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> AuthorDate: Tue Jul 2 14:34:36 2024 +0100 Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CommitDate: Thu Jul 4 19:07:32 2024 +0100 CI: Formalise the use of heredocs Commit b5739330d7f4 introduced the use of heredocs in the jessie/stretch dockerfiles. It turns out this was introduced by BuildKit in 2018 along with a standardisation of Dockerfile syntax, and has subsequently been adopted by the docker community. Annotate all dockerfiles with a statement of the syntax in use, and extend README.md details including how to activate BuildKit when it's available but off by default. This allows the containers to be rebuilt following commit a0e29b316363 ("CI: Drop glibc-i386 from the build containers"). Fixes: b5739330d7f4 ("automation: fix jessie/stretch images to use archive.debian.org apt repos") Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Reviewed-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx> --- automation/build/README.md | 10 +++++++++- automation/build/alpine/3.18-arm64v8.dockerfile | 1 + automation/build/alpine/3.18.dockerfile | 1 + automation/build/archlinux/current-riscv64.dockerfile | 1 + automation/build/archlinux/current.dockerfile | 1 + automation/build/centos/7.dockerfile | 1 + automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile | 1 + automation/build/debian/bookworm-arm64v8.dockerfile | 1 + automation/build/debian/bookworm-cppcheck.dockerfile | 1 + automation/build/debian/bookworm-i386.dockerfile | 1 + automation/build/debian/bookworm.dockerfile | 1 + automation/build/debian/bullseye-ppc64le.dockerfile | 1 + automation/build/debian/buster-gcc-ibt.dockerfile | 1 + automation/build/debian/jessie-i386.dockerfile | 1 + automation/build/debian/jessie.dockerfile | 1 + automation/build/debian/stretch-i386.dockerfile | 1 + automation/build/debian/stretch.dockerfile | 1 + automation/build/fedora/29.dockerfile | 1 + automation/build/suse/opensuse-leap.dockerfile | 1 + automation/build/suse/opensuse-tumbleweed.dockerfile | 1 + automation/build/ubuntu/bionic.dockerfile | 1 + automation/build/ubuntu/focal.dockerfile | 1 + automation/build/ubuntu/trusty.dockerfile | 1 + automation/build/ubuntu/xenial-xilinx.dockerfile | 1 + automation/build/ubuntu/xenial.dockerfile | 1 + automation/build/yocto/yocto.dockerfile.in | 2 ++ automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile | 1 + automation/tests-artifacts/alpine/3.18.dockerfile | 1 + automation/tests-artifacts/kernel/5.19-arm64v8.dockerfile | 1 + automation/tests-artifacts/kernel/6.1.19.dockerfile | 1 + .../qemu-system-aarch64/6.0.0-arm64v8.dockerfile | 1 + .../tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile | 1 + 32 files changed, 41 insertions(+), 1 deletion(-) diff --git a/automation/build/README.md b/automation/build/README.md index 1c040533fd..12a2b4af18 100644 --- a/automation/build/README.md +++ b/automation/build/README.md @@ -81,7 +81,14 @@ Building a container There is a makefile to make this process easier. You should be able to run `make DISTRO/VERSION` to have Docker build the container -for you. If you define the `PUSH` environment variable when running the +for you. + +Xen's dockerfiles use heredocs, which depend on the standardised dockerfile +syntax introduced by [BuiltKit]. This should work by default starting with +docker 23.0, or podman/buildah v1.33. For older versions of docker, it can be +activated with `DOCKER_BUILDKIT=1` in the environment. + +If you define the `PUSH` environment variable when running the former `make` command, it will push the container to the [registry] if you have access to do so and have your Docker logged into the registry. @@ -101,6 +108,7 @@ env CONTAINER_NO_PULL=1 \ make -C automation/build suse/opensuse-tumbleweed PUSH=1 ``` +[BuildKit]: https://docs.docker.com/build/buildkit/ [registry]: https://gitlab.com/xen-project/xen/container_registry [registry help]: https://gitlab.com/help/user/project/container_registry diff --git a/automation/build/alpine/3.18-arm64v8.dockerfile b/automation/build/alpine/3.18-arm64v8.dockerfile index 91e9022024..19fe46f841 100644 --- a/automation/build/alpine/3.18-arm64v8.dockerfile +++ b/automation/build/alpine/3.18-arm64v8.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/arm64/v8 alpine:3.18 LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/build/alpine/3.18.dockerfile b/automation/build/alpine/3.18.dockerfile index 8d5dac05b0..263e9e90d8 100644 --- a/automation/build/alpine/3.18.dockerfile +++ b/automation/build/alpine/3.18.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/amd64 alpine:3.18 LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/build/archlinux/current-riscv64.dockerfile b/automation/build/archlinux/current-riscv64.dockerfile index af75b5c720..f7770bf82a 100644 --- a/automation/build/archlinux/current-riscv64.dockerfile +++ b/automation/build/archlinux/current-riscv64.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/amd64 archlinux LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/build/archlinux/current.dockerfile b/automation/build/archlinux/current.dockerfile index d29f1358c2..8929e9b5f0 100644 --- a/automation/build/archlinux/current.dockerfile +++ b/automation/build/archlinux/current.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/amd64 archlinux:base-devel LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/build/centos/7.dockerfile b/automation/build/centos/7.dockerfile index 1cdc16fc05..657550f308 100644 --- a/automation/build/centos/7.dockerfile +++ b/automation/build/centos/7.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/amd64 centos:7 LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile b/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile index a05ffeac04..95b3f04283 100644 --- a/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile +++ b/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/arm64/v8 debian:bookworm LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/build/debian/bookworm-arm64v8.dockerfile b/automation/build/debian/bookworm-arm64v8.dockerfile index 2c432aacb7..3ab426a082 100644 --- a/automation/build/debian/bookworm-arm64v8.dockerfile +++ b/automation/build/debian/bookworm-arm64v8.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/arm64/v8 debian:bookworm LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/build/debian/bookworm-cppcheck.dockerfile b/automation/build/debian/bookworm-cppcheck.dockerfile index 633268376d..fe4cd4a1aa 100644 --- a/automation/build/debian/bookworm-cppcheck.dockerfile +++ b/automation/build/debian/bookworm-cppcheck.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/arm64/v8 debian:bookworm AS builder ENV DEBIAN_FRONTEND=noninteractive diff --git a/automation/build/debian/bookworm-i386.dockerfile b/automation/build/debian/bookworm-i386.dockerfile index 89a6503385..9a54bd7293 100644 --- a/automation/build/debian/bookworm-i386.dockerfile +++ b/automation/build/debian/bookworm-i386.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/i386 debian:bookworm LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/build/debian/bookworm.dockerfile b/automation/build/debian/bookworm.dockerfile index d893218fc4..bef44dd753 100644 --- a/automation/build/debian/bookworm.dockerfile +++ b/automation/build/debian/bookworm.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/amd64 debian:bookworm LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/build/debian/bullseye-ppc64le.dockerfile b/automation/build/debian/bullseye-ppc64le.dockerfile index 6fdfb6bc2b..e166d205f3 100644 --- a/automation/build/debian/bullseye-ppc64le.dockerfile +++ b/automation/build/debian/bullseye-ppc64le.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/amd64 debian:bullseye-slim LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/build/debian/buster-gcc-ibt.dockerfile b/automation/build/debian/buster-gcc-ibt.dockerfile index 6a3e50ef6b..ed9367aafb 100644 --- a/automation/build/debian/buster-gcc-ibt.dockerfile +++ b/automation/build/debian/buster-gcc-ibt.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/amd64 debian:buster-slim AS builder ENV DEBIAN_FRONTEND=noninteractive diff --git a/automation/build/debian/jessie-i386.dockerfile b/automation/build/debian/jessie-i386.dockerfile index a8dec82bb2..f6eaa94ee5 100644 --- a/automation/build/debian/jessie-i386.dockerfile +++ b/automation/build/debian/jessie-i386.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/i386 debian/eol:jessie LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/build/debian/jessie.dockerfile b/automation/build/debian/jessie.dockerfile index 308675cac1..a870e743fc 100644 --- a/automation/build/debian/jessie.dockerfile +++ b/automation/build/debian/jessie.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/amd64 debian/eol:jessie LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/build/debian/stretch-i386.dockerfile b/automation/build/debian/stretch-i386.dockerfile index da93fed8ea..ad8db692aa 100644 --- a/automation/build/debian/stretch-i386.dockerfile +++ b/automation/build/debian/stretch-i386.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/i386 debian:stretch LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/build/debian/stretch.dockerfile b/automation/build/debian/stretch.dockerfile index 59794ed467..4dfd40b542 100644 --- a/automation/build/debian/stretch.dockerfile +++ b/automation/build/debian/stretch.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/amd64 debian:stretch LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/build/fedora/29.dockerfile b/automation/build/fedora/29.dockerfile index f473ae13e7..08edf70838 100644 --- a/automation/build/fedora/29.dockerfile +++ b/automation/build/fedora/29.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/amd64 fedora:29 LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/build/suse/opensuse-leap.dockerfile b/automation/build/suse/opensuse-leap.dockerfile index 3ef33458a0..28d3338812 100644 --- a/automation/build/suse/opensuse-leap.dockerfile +++ b/automation/build/suse/opensuse-leap.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/amd64 opensuse/leap LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/build/suse/opensuse-tumbleweed.dockerfile b/automation/build/suse/opensuse-tumbleweed.dockerfile index a793601c87..077fed2226 100644 --- a/automation/build/suse/opensuse-tumbleweed.dockerfile +++ b/automation/build/suse/opensuse-tumbleweed.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/amd64 opensuse/tumbleweed LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/build/ubuntu/bionic.dockerfile b/automation/build/ubuntu/bionic.dockerfile index 910d3c4b53..cc43fc4ade 100644 --- a/automation/build/ubuntu/bionic.dockerfile +++ b/automation/build/ubuntu/bionic.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/amd64 ubuntu:18.04 LABEL maintainer.name="The Xen Project " \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/build/ubuntu/focal.dockerfile b/automation/build/ubuntu/focal.dockerfile index 078abd56d5..cb8bb2f6fa 100644 --- a/automation/build/ubuntu/focal.dockerfile +++ b/automation/build/ubuntu/focal.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/amd64 ubuntu:20.04 LABEL maintainer.name="The Xen Project " \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/build/ubuntu/trusty.dockerfile b/automation/build/ubuntu/trusty.dockerfile index 8bd8c085a7..e2a1bda7c3 100644 --- a/automation/build/ubuntu/trusty.dockerfile +++ b/automation/build/ubuntu/trusty.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/amd64 ubuntu:14.04 LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/build/ubuntu/xenial-xilinx.dockerfile b/automation/build/ubuntu/xenial-xilinx.dockerfile index 49f27b3229..f03d62e8bd 100644 --- a/automation/build/ubuntu/xenial-xilinx.dockerfile +++ b/automation/build/ubuntu/xenial-xilinx.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/amd64 ubuntu:16.04 LABEL maintainer.name="The Xen Project " \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/build/ubuntu/xenial.dockerfile b/automation/build/ubuntu/xenial.dockerfile index f6296d3292..168bc70ffa 100644 --- a/automation/build/ubuntu/xenial.dockerfile +++ b/automation/build/ubuntu/xenial.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/amd64 ubuntu:16.04 LABEL maintainer.name="The Xen Project " \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/build/yocto/yocto.dockerfile.in b/automation/build/yocto/yocto.dockerfile.in index b0892d4203..fbaa4e191c 100644 --- a/automation/build/yocto/yocto.dockerfile.in +++ b/automation/build/yocto/yocto.dockerfile.in @@ -1,3 +1,5 @@ +# syntax=docker/dockerfile:1 + # Docker file to create an environment to build yocto with virtualization # # Arguments that can be passed during image creation using --build-arg: diff --git a/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile b/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile index 0e5ae7f2b4..a4542f7039 100644 --- a/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile +++ b/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/arm64/v8 alpine:3.18 LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/tests-artifacts/alpine/3.18.dockerfile b/automation/tests-artifacts/alpine/3.18.dockerfile index 9cde6c9ad4..311a92889b 100644 --- a/automation/tests-artifacts/alpine/3.18.dockerfile +++ b/automation/tests-artifacts/alpine/3.18.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/amd64 alpine:3.18 LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/tests-artifacts/kernel/5.19-arm64v8.dockerfile b/automation/tests-artifacts/kernel/5.19-arm64v8.dockerfile index b0875ca0dd..22359c9066 100644 --- a/automation/tests-artifacts/kernel/5.19-arm64v8.dockerfile +++ b/automation/tests-artifacts/kernel/5.19-arm64v8.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/arm64/v8 debian:bookworm LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/tests-artifacts/kernel/6.1.19.dockerfile b/automation/tests-artifacts/kernel/6.1.19.dockerfile index 021bde26c7..5cf53d290c 100644 --- a/automation/tests-artifacts/kernel/6.1.19.dockerfile +++ b/automation/tests-artifacts/kernel/6.1.19.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/amd64 debian:bookworm LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/tests-artifacts/qemu-system-aarch64/6.0.0-arm64v8.dockerfile b/automation/tests-artifacts/qemu-system-aarch64/6.0.0-arm64v8.dockerfile index fb7b7b506e..e9f5576be7 100644 --- a/automation/tests-artifacts/qemu-system-aarch64/6.0.0-arm64v8.dockerfile +++ b/automation/tests-artifacts/qemu-system-aarch64/6.0.0-arm64v8.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/arm64/v8 debian:bookworm LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" diff --git a/automation/tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile b/automation/tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile index 65857147bf..e28d686492 100644 --- a/automation/tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile +++ b/automation/tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1 FROM --platform=linux/amd64 debian:bullseye-slim LABEL maintainer.name="The Xen Project" \ maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" -- generated by git-patchbot for /home/xen/git/xen.git#master
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |