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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org" 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@lists.xenproject.org"