From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 144EB42E24; Tue, 18 Jul 2023 15:40:54 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 29CA3410D3; Tue, 18 Jul 2023 15:40:53 +0200 (CEST) Received: from mail-yw1-f177.google.com (mail-yw1-f177.google.com [209.85.128.177]) by mails.dpdk.org (Postfix) with ESMTP id 8BE0140A84 for ; Tue, 18 Jul 2023 15:40:52 +0200 (CEST) Received: by mail-yw1-f177.google.com with SMTP id 00721157ae682-57d24970042so53276097b3.2 for ; Tue, 18 Jul 2023 06:40:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; t=1689687652; x=1692279652; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=AGRbJrKsqISCiFy+SgpUFMAvocuKa1h2iS7IOcpvFdQ=; b=AVT3Rsqm45YC51VIDn2h6jjOecYOnRbAuJzloBn2UDLtjn0xpFJWyMQgyREQob2Clj HMh9YEyJDPRh008qz0ief981h9ah/smxuNhE8vpneJqFd/aV+99XASntehOrzILPTnX9 QUzKE2Q805lzgoJpoUrtQwtouRF7DGFt9pfMs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689687652; x=1692279652; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=AGRbJrKsqISCiFy+SgpUFMAvocuKa1h2iS7IOcpvFdQ=; b=i8SUTEG3buoOt0+ywBoba0WA7cf5/EfThOLggFmM0AzMORo0OfgxIpk8J/HljvBJqm 5wY6upMOxzxUPVcjdSNE/PPtej87cUIjkTPNTAk2nClxQp4wPVhVi6kv7fBqONmoHTlJ 9L5XXumpDDldcqdjNbKRdLaNudmkz1F7E2C0ns88WpZh2fhBjKq3k42KFCYD9+osTcPx 1owYw57tRzskCNmC9+7WMb4tHKmgqROVU5FiXuyc7MpxTOSZ6duf2VqL0MnsGScaIJbs NMBUuF+tjEYTcH9hHCMB3UW8uARuGU/Vf6lpd5RpBMpLWTaCW2neh9DayQzljvtpC7Br t4wQ== X-Gm-Message-State: ABy/qLZXZLyc3B70/D5ZQMUVCkD3geh2AmbQSJ8b3ioAw7Ut1RdOoCYZ SOgk78ak5TyKtJM4krG5hPDUpUxyUiTuhKk0Z8goOw== X-Google-Smtp-Source: APBJJlFlUUTuL+rBH0lo/1jOGJW0ZsFFhZzJUnPt5infNVCqi7/UhQxGR45YAncwbInpEVwLTSSGjvWeXeGi7684GPo= X-Received: by 2002:a25:b988:0:b0:ceb:4909:dd28 with SMTP id r8-20020a25b988000000b00ceb4909dd28mr1140199ybg.52.1689687651849; Tue, 18 Jul 2023 06:40:51 -0700 (PDT) MIME-Version: 1.0 References: <20230711202124.1636317-1-ahassick@iol.unh.edu> In-Reply-To: From: Adam Hassick Date: Tue, 18 Jul 2023 09:40:40 -0400 Message-ID: Subject: Re: [PATCH v7 0/6] Community Lab Containers and Builder Engine To: Aaron Conole Cc: ci@dpdk.org, alialnu@nvidia.com Content-Type: multipart/alternative; boundary="0000000000004534510600c3105b" X-BeenThere: ci@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK CI discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ci-bounces@dpdk.org --0000000000004534510600c3105b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable These issues are fixed in v8. On Mon, Jul 17, 2023 at 3:07=E2=80=AFPM Aaron Conole w= rote: > Adam Hassick writes: > > > This patch series contains a new version of the DPDK CI containers. The > old > > version was tied very tightly to the Community Lab Infrastructure, so i= t > was > > not suitable for general use. This version is designed to make adding n= ew > > OSes or OS versions as easy as possible. The minimum functionality can > easily > > be built on any system that can compile DPDK. It includes support for > > building containers for other non-native architectures (ex: arm > containers > > on x86) and for baking ABI references into the images. > > > > The inventory file as added in this patch series defines what the > community lab > > currently supports. > > > > If you want to build these yourself, don't try to do parallel Makefile > builds > > on non-server hardware. Libabigail is built into the containers, and > since it > > is not avaliable in all distros it is compiled from source for many > targets. > > If embedding the abi is enabled (DPDK_CI_CONTAINERS_BUILD_ABI=3DY), wit= h > the > > current settings, DPDK will be compiled twice for every target in the > > inventory file. This will become three times when DPDK main has ABI > stability > > again. Due to how the containers are constructed, building on non-nativ= e > > architectures is especially expensive because DPDK is compiled with an > emulated > > compiler in a qemu vm that only has one thread. > > > > --- > > > > v2: > > * Added poetry.lock > > * Remove duplicates in inventory file > > * Fix typo in base container template > > > > v3: > > * Libabigail is now not built by default unless > DPDK_CI_CONTAINERS_BUILD_ABI=3Dy > > * Made minimum podman version 4.0.0 due to dependencies on cache mounts > > > > v4: > > * Fix whitespace errors > > > > v5: > > * Updated container templates and inventory > > * Add support for OCI manifests > > * Update README to reflect changes > > > > v6: > > * Fix spelling errors and whitespace errors > > > > v7: > > * Add workaround to Arch template to install Python packages as root > > * Compare against v4 and polish the patchset > > Please can you repost with the spelling fixes, and also fixing Owen's > email address? (it is currently listed like a mailing list archive). > > > Owen Hilyard (6): > > * Add README file for containers * Add pyproject file with required > > dependencies for building containers > > Adds a yaml file used to define what containers should be built, what > > packages the containers should have, what platforms to build for an= d > > how they should be tagged. > > This script will template out all of the Dockerfiles based on the > > definitions provided in the inventory using the jinja2 templating > > library. > > Adds a variety of extensible templates used to create the Dockerfiles > > for each target. All templates inherit from base, and most distros > > and distro families have their own templates that are used to defin= e > > common functionality. Multiple versions of a distro may use a singl= e > > template if they are similar enough (ex: fedora). > > Adds a container that can be used to run the python scripts to create > > the Dockerfiles for the CI containers. This removes a large number > > of python environment dependencies from the host requirements. > > The Makefile that can be used to build all of the container images > > using "make build", and can also be used to push them to a remote > > repository (for use in CI). > > > > containers/Makefile | 252 ++++++++++ > > containers/README.md | 178 +++++++ > > containers/container_builder.dockerfile | 26 + > > containers/template_engine/inventory.yaml | 470 ++++++++++++++++++ > > .../template_engine/inventory_schema.json | 221 ++++++++ > > containers/template_engine/make_dockerfile.py | 358 +++++++++++++ > > containers/template_engine/poetry.lock | 220 ++++++++ > > containers/template_engine/pyproject.toml | 21 + > > .../templates/containers.makefile.j2 | 73 +++ > > .../templates/containers/alpine.dockerfile.j2 | 3 + > > .../templates/containers/arch.dockerfile.j2 | 39 ++ > > .../templates/containers/base.dockerfile.j2 | 120 +++++ > > .../containers/centos8.dockerfile.j2 | 21 + > > .../containers/centos9.dockerfile.j2 | 17 + > > .../templates/containers/debian.dockerfile.j2 | 7 + > > .../containers/debian10.dockerfile.j2 | 3 + > > .../containers/debian11.dockerfile.j2 | 3 + > > .../debian11_arm_ipsec.dockerfile.j2 | 16 + > > .../containers/debian_bullseye.dockerfile.j2 | 3 + > > .../containers/debian_buster.dockerfile.j2 | 3 + > > .../templates/containers/fedora.dockerfile.j2 | 11 + > > .../containers/fedora36_clang.dockerfile.j2 | 7 + > > .../containers/fedora_clang.dockerfile.j2 | 8 + > > .../containers/fedora_coverity.dockerfile.j2 | 10 + > > .../containers/opensuse.dockerfile.j2 | 10 + > > .../containers/redhat_family.dockerfile.j2 | 5 + > > .../templates/containers/rhel.dockerfile.j2 | 16 + > > .../templates/containers/rhel7.dockerfile.j2 | 15 + > > .../templates/containers/rhel8.dockerfile.j2 | 15 + > > .../templates/containers/rhel9.dockerfile.j2 | 19 + > > .../templates/containers/rpm.dockerfile.j2 | 3 + > > .../templates/containers/ubuntu.dockerfile.j2 | 3 + > > .../containers/ubuntu20.04.dockerfile.j2 | 12 + > > .../containers/ubuntu22.04.dockerfile.j2 | 3 + > > .../containers/ubuntu_cross.dockerfile.j2 | 11 + > > .../containers/ubuntu_sve.dockerfile.j2 | 12 + > > 36 files changed, 2214 insertions(+) > > create mode 100644 containers/Makefile > > create mode 100644 containers/README.md > > create mode 100644 containers/container_builder.dockerfile > > create mode 100644 containers/template_engine/inventory.yaml > > create mode 100644 containers/template_engine/inventory_schema.json > > create mode 100755 containers/template_engine/make_dockerfile.py > > create mode 100644 containers/template_engine/poetry.lock > > create mode 100644 containers/template_engine/pyproject.toml > > create mode 100644 > containers/template_engine/templates/containers.makefile.j2 > > create mode 100644 > containers/template_engine/templates/containers/alpine.dockerfile.j2 > > create mode 100644 > containers/template_engine/templates/containers/arch.dockerfile.j2 > > create mode 100644 > containers/template_engine/templates/containers/base.dockerfile.j2 > > create mode 100644 > containers/template_engine/templates/containers/centos8.dockerfile.j2 > > create mode 100644 > containers/template_engine/templates/containers/centos9.dockerfile.j2 > > create mode 100644 > containers/template_engine/templates/containers/debian.dockerfile.j2 > > create mode 100644 > containers/template_engine/templates/containers/debian10.dockerfile.j2 > > create mode 100644 > containers/template_engine/templates/containers/debian11.dockerfile.j2 > > create mode 100644 > containers/template_engine/templates/containers/debian11_arm_ipsec.docker= file.j2 > > create mode 100644 > containers/template_engine/templates/containers/debian_bullseye.dockerfil= e.j2 > > create mode 100644 > containers/template_engine/templates/containers/debian_buster.dockerfile.= j2 > > create mode 100644 > containers/template_engine/templates/containers/fedora.dockerfile.j2 > > create mode 100644 > containers/template_engine/templates/containers/fedora36_clang.dockerfile= .j2 > > create mode 100644 > containers/template_engine/templates/containers/fedora_clang.dockerfile.j= 2 > > create mode 100644 > containers/template_engine/templates/containers/fedora_coverity.dockerfil= e.j2 > > create mode 100644 > containers/template_engine/templates/containers/opensuse.dockerfile.j2 > > create mode 100644 > containers/template_engine/templates/containers/redhat_family.dockerfile.= j2 > > create mode 100644 > containers/template_engine/templates/containers/rhel.dockerfile.j2 > > create mode 100644 > containers/template_engine/templates/containers/rhel7.dockerfile.j2 > > create mode 100644 > containers/template_engine/templates/containers/rhel8.dockerfile.j2 > > create mode 100644 > containers/template_engine/templates/containers/rhel9.dockerfile.j2 > > create mode 100644 > containers/template_engine/templates/containers/rpm.dockerfile.j2 > > create mode 100644 > containers/template_engine/templates/containers/ubuntu.dockerfile.j2 > > create mode 100644 > containers/template_engine/templates/containers/ubuntu20.04.dockerfile.j2 > > create mode 100644 > containers/template_engine/templates/containers/ubuntu22.04.dockerfile.j2 > > create mode 100644 > containers/template_engine/templates/containers/ubuntu_cross.dockerfile.j= 2 > > create mode 100644 > containers/template_engine/templates/containers/ubuntu_sve.dockerfile.j2 > > --=20 *Adam Hassick* Senior Developer UNH InterOperability Lab ahassick@iol.unh.edu iol.unh.edu +1 (603) 475-8248 --0000000000004534510600c3105b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
These issues are fixed in v8.

On Mon, Jul 17, 2023 at 3= :07=E2=80=AFPM Aaron Conole <acono= le@redhat.com> wrote:
Adam Hassick <ahassick@iol.unh.edu> writes:

> This patch series contains a new version of the DPDK CI containers. Th= e old
> version was tied very tightly to the Community Lab Infrastructure, so = it was
> not suitable for general use. This version is designed to make adding = new
> OSes or OS versions as easy as possible. The minimum functionality can= easily
> be built on any system that can compile DPDK. It includes support for<= br> > building containers for other non-native architectures (ex: arm contai= ners
> on x86) and for baking ABI references into the images.
>
> The inventory file as added in this patch series defines what the comm= unity lab
> currently supports.
>
> If you want to build these yourself, don't try to do parallel Make= file builds
> on non-server hardware. Libabigail is built into the containers, and s= ince it
> is not avaliable in all distros it is compiled from source for many ta= rgets.
> If embedding the abi is enabled (DPDK_CI_CONTAINERS_BUILD_ABI=3DY), wi= th the
> current settings, DPDK will be compiled twice for every target in the<= br> > inventory file. This will become three times when DPDK main has ABI st= ability
> again. Due to how the containers are constructed, building on non-nati= ve
> architectures is especially expensive because DPDK is compiled with an= emulated
> compiler in a qemu vm that only has one thread.
>
> ---
>
> v2:
> * Added poetry.lock
> * Remove duplicates in inventory file
> * Fix typo in base container template
>
> v3:
> * Libabigail is now not built by default unless DPDK_CI_CONTAINERS_BUI= LD_ABI=3Dy
> * Made minimum podman version 4.0.0 due to dependencies on cache mount= s
>
> v4:
> * Fix whitespace errors
>
> v5:
> * Updated container templates and inventory
> * Add support for OCI manifests
> * Update README to reflect changes
>
> v6:
> * Fix spelling errors and whitespace errors
>
> v7:
> * Add workaround to Arch template to install Python packages as root > * Compare against v4 and polish the patchset

Please can you repost with the spelling fixes, and also fixing Owen's email address? (it is currently listed like a mailing list archive).

> Owen Hilyard (6):
>=C2=A0 =C2=A0* Add README file for containers * Add pyproject file with= required
>=C2=A0 =C2=A0 =C2=A0dependencies for building containers
>=C2=A0 =C2=A0Adds a yaml file used to define what containers should be = built, what
>=C2=A0 =C2=A0 =C2=A0packages the containers should have, what platforms= to build for and
>=C2=A0 =C2=A0 =C2=A0how they should be tagged.
>=C2=A0 =C2=A0This script will template out all of the Dockerfiles based= on the
>=C2=A0 =C2=A0 =C2=A0definitions provided in the inventory using the jin= ja2 templating
>=C2=A0 =C2=A0 =C2=A0library.
>=C2=A0 =C2=A0Adds a variety of extensible templates used to create the = Dockerfiles
>=C2=A0 =C2=A0 =C2=A0for each target. All templates inherit from base, a= nd most distros
>=C2=A0 =C2=A0 =C2=A0and distro families have their own templates that a= re used to define
>=C2=A0 =C2=A0 =C2=A0common functionality. Multiple versions of a distro= may use a single
>=C2=A0 =C2=A0 =C2=A0template if they are similar enough (ex: fedora). >=C2=A0 =C2=A0Adds a container that can be used to run the python script= s to create
>=C2=A0 =C2=A0 =C2=A0the Dockerfiles for the CI containers. This removes= a large number
>=C2=A0 =C2=A0 =C2=A0of python environment dependencies from the host re= quirements.
>=C2=A0 =C2=A0The Makefile that can be used to build all of the containe= r images
>=C2=A0 =C2=A0 =C2=A0using "make build", and can also be used = to push them to a remote
>=C2=A0 =C2=A0 =C2=A0repository (for use in CI).
>
>=C2=A0 containers/Makefile=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| 252 ++++++++++
>=C2=A0 containers/README.md=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | 178 +++++++
>=C2=A0 containers/container_builder.dockerfile=C2=A0 =C2=A0 =C2=A0 =C2= =A0|=C2=A0 26 +
>=C2=A0 containers/template_engine/inventory.yaml=C2=A0 =C2=A0 =C2=A0| 4= 70 ++++++++++++++++++
>=C2=A0 .../template_engine/inventory_schema.json=C2=A0 =C2=A0 =C2=A0| 2= 21 ++++++++
>=C2=A0 containers/template_engine/make_dockerfile.py | 358 ++++++++++++= +
>=C2=A0 containers/template_engine/poetry.lock=C2=A0 =C2=A0 =C2=A0 =C2= =A0 | 220 ++++++++
>=C2=A0 containers/template_engine/pyproject.toml=C2=A0 =C2=A0 =C2=A0|= =C2=A0 21 +
>=C2=A0 .../templates/containers.makefile.j2=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 |=C2=A0 73 +++
>=C2=A0 .../templates/containers/alpine.dockerfile.j2 |=C2=A0 =C2=A03 +<= br> >=C2=A0 .../templates/containers/arch.dockerfile.j2=C2=A0 =C2=A0|=C2=A0 = 39 ++
>=C2=A0 .../templates/containers/base.dockerfile.j2=C2=A0 =C2=A0| 120 ++= +++
>=C2=A0 .../containers/centos8.dockerfile.j2=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 |=C2=A0 21 +
>=C2=A0 .../containers/centos9.dockerfile.j2=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 |=C2=A0 17 +
>=C2=A0 .../templates/containers/debian.dockerfile.j2 |=C2=A0 =C2=A07 +<= br> >=C2=A0 .../containers/debian10.dockerfile.j2=C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0|=C2=A0 =C2=A03 +
>=C2=A0 .../containers/debian11.dockerfile.j2=C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0|=C2=A0 =C2=A03 +
>=C2=A0 .../debian11_arm_ipsec.dockerfile.j2=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 |=C2=A0 16 +
>=C2=A0 .../containers/debian_bullseye.dockerfile.j2=C2=A0 |=C2=A0 =C2= =A03 +
>=C2=A0 .../containers/debian_buster.dockerfile.j2=C2=A0 =C2=A0 |=C2=A0 = =C2=A03 +
>=C2=A0 .../templates/containers/fedora.dockerfile.j2 |=C2=A0 11 +
>=C2=A0 .../containers/fedora36_clang.dockerfile.j2=C2=A0 =C2=A0|=C2=A0 = =C2=A07 +
>=C2=A0 .../containers/fedora_clang.dockerfile.j2=C2=A0 =C2=A0 =C2=A0|= =C2=A0 =C2=A08 +
>=C2=A0 .../containers/fedora_coverity.dockerfile.j2=C2=A0 |=C2=A0 10 +<= br> >=C2=A0 .../containers/opensuse.dockerfile.j2=C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0|=C2=A0 10 +
>=C2=A0 .../containers/redhat_family.dockerfile.j2=C2=A0 =C2=A0 |=C2=A0 = =C2=A05 +
>=C2=A0 .../templates/containers/rhel.dockerfile.j2=C2=A0 =C2=A0|=C2=A0 = 16 +
>=C2=A0 .../templates/containers/rhel7.dockerfile.j2=C2=A0 |=C2=A0 15 +<= br> >=C2=A0 .../templates/containers/rhel8.dockerfile.j2=C2=A0 |=C2=A0 15 +<= br> >=C2=A0 .../templates/containers/rhel9.dockerfile.j2=C2=A0 |=C2=A0 19 +<= br> >=C2=A0 .../templates/containers/rpm.dockerfile.j2=C2=A0 =C2=A0 |=C2=A0 = =C2=A03 +
>=C2=A0 .../templates/containers/ubuntu.dockerfile.j2 |=C2=A0 =C2=A03 +<= br> >=C2=A0 .../containers/ubuntu20.04.dockerfile.j2=C2=A0 =C2=A0 =C2=A0 |= =C2=A0 12 +
>=C2=A0 .../containers/ubuntu22.04.dockerfile.j2=C2=A0 =C2=A0 =C2=A0 |= =C2=A0 =C2=A03 +
>=C2=A0 .../containers/ubuntu_cross.dockerfile.j2=C2=A0 =C2=A0 =C2=A0|= =C2=A0 11 +
>=C2=A0 .../containers/ubuntu_sve.dockerfile.j2=C2=A0 =C2=A0 =C2=A0 =C2= =A0|=C2=A0 12 +
>=C2=A0 36 files changed, 2214 insertions(+)
>=C2=A0 create mode 100644 containers/Makefile
>=C2=A0 create mode 100644 containers/README.md
>=C2=A0 create mode 100644 containers/container_builder.dockerfile
>=C2=A0 create mode 100644 containers/template_engine/inventory.yaml
>=C2=A0 create mode 100644 containers/template_engine/inventory_schema.j= son
>=C2=A0 create mode 100755 containers/template_engine/make_dockerfile.py=
>=C2=A0 create mode 100644 containers/template_engine/poetry.lock
>=C2=A0 create mode 100644 containers/template_engine/pyproject.toml
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs.makefile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/alpine.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/arch.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/base.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/centos8.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/centos9.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/debian.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/debian10.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/debian11.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/debian11_arm_ipsec.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/debian_bullseye.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/debian_buster.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/fedora.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/fedora36_clang.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/fedora_clang.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/fedora_coverity.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/opensuse.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/redhat_family.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/rhel.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/rhel7.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/rhel8.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/rhel9.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/rpm.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/ubuntu.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/ubuntu20.04.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/ubuntu22.04.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/ubuntu_cross.dockerfile.j2
>=C2=A0 create mode 100644 containers/template_engine/templates/containe= rs/ubuntu_sve.dockerfile.j2



--
Adam Hassick
Senior Developer
UNH InterOperability Lab
+1 (603) 475-8248
--0000000000004534510600c3105b--