From: Adam Hassick <ahassick@iol.unh.edu>
To: ci@dpdk.org
Cc: Adam Hassick <ahassick@iol.unh.edu>,
aconole@redhat.com, alialnu@nvidia.com
Subject: [PATCH v5 09/11] containers/templates: Update templates
Date: Tue, 23 May 2023 13:04:11 -0400 [thread overview]
Message-ID: <20230523170413.812922-10-ahassick@iol.unh.edu> (raw)
In-Reply-To: <20230523170413.812922-1-ahassick@iol.unh.edu>
* Add OCI manifest support
* Add Docker multi-stage support
* Add Coverity Scan container template
* Add ARM ipsec container for cryptodev testing
Various template updates for added features and use of new arguments.
A check was added to distinguish between which ABI version is to be
generated as a binary reference or an XML reference.
Signed-off-by: Adam Hassick <ahassick@iol.unh.edu>
---
.../templates/containers.makefile.j2 | 62 ++++++++++++---
.../templates/containers/alpine.dockerfile.j2 | 33 --------
.../templates/containers/base.dockerfile.j2 | 78 ++++++++++++++-----
.../containers/debian11.dockerfile.j2 | 2 +-
.../debian11_arm_ipsec.dockerfile.j2 | 16 ++++
.../containers/fedora_clang.dockerfile.j2 | 7 ++
.../containers/fedora_coverity.dockerfile.j2 | 10 +++
.../templates/containers/rhel.dockerfile.j2 | 8 +-
.../templates/containers/rhel7.dockerfile.j2 | 8 +-
.../templates/containers/rhel8.dockerfile.j2 | 10 +--
.../templates/containers/rhel9.dockerfile.j2 | 12 +--
.../containers/ubuntu22.04.dockerfile.j2 | 6 +-
.../containers/ubuntu_cross.dockerfile.j2 | 3 +-
.../containers/ubuntu_sve.dockerfile.j2 | 2 +
14 files changed, 162 insertions(+), 95 deletions(-)
create mode 100644 containers/template_engine/templates/containers/debian11_arm_ipsec.dockerfile.j2
create mode 100644 containers/template_engine/templates/containers/fedora_clang.dockerfile.j2
create mode 100644 containers/template_engine/templates/containers/fedora_coverity.dockerfile.j2
diff --git a/containers/template_engine/templates/containers.makefile.j2 b/containers/template_engine/templates/containers.makefile.j2
index fb71044..900bfc8 100644
--- a/containers/template_engine/templates/containers.makefile.j2
+++ b/containers/template_engine/templates/containers.makefile.j2
@@ -10,22 +10,64 @@ DPDK_CI_CONTAINERS_REGISTRY_HOSTNAME?={{ registry_hostname }}
.PHONY: build_all
build_all:{% for container in dockerfiles.targets %} build_{{ container.name }}{% endfor %}
-.PHONY: push_all
-push_all:{% for container in dockerfiles.targets %} push_{{ container.name }}{% endfor %}
+.PHONY: push_image_all
+push_image_all:{% for container in dockerfiles.targets %} push_image_{{ container.name }}{% endfor %}
+
+.PHONY: push_manifest_all
+push_manifest_all:
+{%- if is_builder %}
+ echo "Disabled: Builder mode was enabled."
+{%- else -%}
+ {% for container in dockerfiles.targets %} push_manifest_{{ container.name }}{% endfor %}
+{%- endif %}
+
+{%- macro push_indx(container, is_docker) %}
+ {%- for tag in container.tags -%}
+ {%- set formatted_tag = tag | replace('$R', registry_hostname) | replace('$T', timestamp) | replace('$N', container.name) | replace(':', '\\:') -%}
+ {%- set trunk_tag = formatted_tag.split('/')[1] -%}
+ {%- if is_docker -%}
+ {%- set ref_tag = formatted_tag -%}
+ {%- set push_xargs = '' -%}
+ {%- else -%}
+ {%- set ref_tag = trunk_tag -%}
+ {%- set push_xargs = ' docker\://%s' | format(formatted_tag) -%}
+ {%- endif -%}
+ $(DPDK_CI_CONTAINER_BUILDER_PROGRAM) manifest rm {{ ref_tag }} || echo "Image {{ ref_tag }} did not exist initially."
+ $(DPDK_CI_CONTAINER_BUILDER_PROGRAM) manifest create {{ ref_tag }}
+ {%- for platform in container.platforms -%}
+ {%- set plat_tag = "%s/%s\:image-%s-%s" | format(registry_hostname, container.name, platform.replace('/', ''), timestamp) %} \
+ {{ plat_tag -}} {% endfor %}
+ $(DPDK_CI_CONTAINER_BUILDER_PROGRAM) manifest push $(DPDK_CI_CONTAINERS_EXTRA_PUSH_ARGS) {{ ref_tag }} {{- push_xargs }}
+ {% endfor -%}
+{% endmacro %}
{% for container in dockerfiles.targets %}
#################### START {{ container.name }} #####################
{% set container_id = container.name %}
.PHONY: build_{{ container_id }}
+
build_{{ container_id }}:
- {% set base_tag = "%s/%s\:latest" | format(registry_hostname, container_id) -%}
- $(DPDK_CI_CONTAINER_BUILDER_PROGRAM) build --target {{container.name}} --platform {{ container.platforms | join(',') }} {% for tag in container.tags -%}-t {{ tag | replace('$R', registry_hostname) | replace('$T', timestamp) | replace('$N', container.name) | replace(':', '\\:') }} {% endfor %} -f {{ container_id }}.dockerfile $(CURDIR)
-
-.PHONY: push_{{ container_id }}
-push_{{ container_id }}: build_{{ container_id }}
- {%- set base_tag = "%s/%s\:latest" | format(registry_hostname, container_id) -%}
- {%- for tag in container.tags %}
- $(DPDK_CI_CONTAINER_BUILDER_PROGRAM) push $(DPDK_CI_CONTAINERS_EXTRA_PUSH_ARGS) {{ base_tag }} docker\://{{ tag | replace('$R', registry_hostname) | replace('$T', timestamp) | replace('$N', container.name) | replace(':', '\\:') }}
+ {%- for platform in container.platforms -%}
+ {%- set plat_tag = "%s/%s\:image-%s-%s" | format(registry_hostname, container_id, platform.replace('/', ''), timestamp) %}
+ $(DPDK_CI_CONTAINER_BUILDER_PROGRAM) build --target {{container.name}} --platform {{ platform }} \
+ -t {{ plat_tag }} -f {{ container_id }}.dockerfile $(CURDIR) {%- endfor %}
+
+.PHONY: push_image_{{ container_id }}
+push_image_{{ container_id }}: build_{{ container_id }}
+ {%- for platform in container.platforms -%}
+ {%- set plat_tag = "%s/%s\:image-%s-%s" | format(registry_hostname, container_id, platform.replace('/', ''), timestamp) %}
+ $(DPDK_CI_CONTAINER_BUILDER_PROGRAM) push $(DPDK_CI_CONTAINERS_EXTRA_PUSH_ARGS) {{ plat_tag }}
{%- endfor %}
+{% if not is_builder %}
+.PHONY: push_manifest_{{ container_id }}
+push_manifest_{{ container_id }}:
+{%- if host_arch_only and not is_builder %} push_image_{{ container_id }}{% endif %}
+ifeq ($(DPDK_CI_CONTAINER_BUILDER_PROGRAM), docker)
+ {{ push_indx(container, true) }}
+else
+ {{ push_indx(container, false) }}
+endif
+{% endif %}
+
#################### END {{ container.name }} #####################
{% endfor %}
\ No newline at end of file
diff --git a/containers/template_engine/templates/containers/alpine.dockerfile.j2 b/containers/template_engine/templates/containers/alpine.dockerfile.j2
index ab21bed..b258d64 100644
--- a/containers/template_engine/templates/containers/alpine.dockerfile.j2
+++ b/containers/template_engine/templates/containers/alpine.dockerfile.j2
@@ -2,36 +2,3 @@
{#- Copyright (c) 2022 University of New Hampshire -#}
{% extends 'containers/base.dockerfile.j2' %}
-{% block pip_installs %}
-RUN python3 -m pip install ninja pyelftools
-{% endblock %}
-
-{% block install_libabigail %}
-{% if build_libabigail %}
-COPY libabigail /libabigail
-# libabigail2.0 does not build on alpine, this commit does with the modification done in the next step.
-RUN --mount=type=cache,target=/ccache cd libabigail && git checkout df28c220976f41620b0bd7b22000815e11f66b75 && sed -i 's/fts-standalone/libfts/g' ./configure.ac && mkdir build && autoreconf -i && cd build && ../configure --prefix=/usr/local && (make all install -j $(nproc) || echo 'failure expected') && (make install || echo 'failure expected') && cd / && rm -rf /libabigail
-{% else %}
-# libabigail build is disabled
-{% endif %}
-{% endblock install_libabigail %}
-
-{% block build_abi %}
-{% for abi_version in abi.versions %}
- {% if abi_version.major >= 22 %}
-{% set abi_version_str = abi_version.git_tag %}
-RUN echo '{{ abi_version_str }}' >> abi_versions
-RUN mkdir {{ abi_version_str }}
-# compile DPDK
-RUN --mount=type=cache,target=/ccache \
- mkdir -p /dpdk/build && rm -rf /dpdk/build && cd /dpdk && git fetch --tags && git checkout tags/{{ abi_version_str }} && cd /references && \
- meson /dpdk /dpdk/build {% if "cross_file" in target -%}
- --cross-file=/dpdk/{{ target.cross_file }}
- {%- endif %} -Dexamples=all --buildtype=debugoptimized && DESTDIR={{ abi_folder }} ninja -C /dpdk/build install && \
- bash /dpdk/devtools/gen-abi.sh {{ abi_folder }} && mv {{ abi_folder }}/usr/local/include {{ abi_folder }} && \
- rm -rf {{ abi_folder }}/usr && rm -rf /dpdk/build
- {% endif %}
-{% endfor %}
-RUN chmod -R 777 .
-RUN rm -rf /dpdk
-{% endblock build_abi %}
\ No newline at end of file
diff --git a/containers/template_engine/templates/containers/base.dockerfile.j2 b/containers/template_engine/templates/containers/base.dockerfile.j2
index 5ffeeb1..576ddb2 100644
--- a/containers/template_engine/templates/containers/base.dockerfile.j2
+++ b/containers/template_engine/templates/containers/base.dockerfile.j2
@@ -2,10 +2,18 @@
{#- Copyright (c) 2022 University of New Hampshire -#}
# ------------------------ Begin {{ target.name }} ------------------------------------------------
-FROM {{ target.base_image }} as {{ target.name }}
+{%- set build_base_img = target.name + "_base" %}
+FROM {{ target.base_image }} as {% if build_abi and not target.force_disable_abi -%}
+{{ build_base_img }}
+{%- else -%}
+{{ target.name }}
+{%- endif %}
+
+ENV CCACHE_DIR=/ccache/
+ENV CCACHE_COMPILERCHECK=content
+ENV CCACHE_NAMESPACE="{{ target.name }}-{{ build_timestamp }}"
+ENV BUILD_TIMESTAMP="{{ build_timestamp }}"
-ENV CCACHE_DIR=/ccache
-RUN mkdir /ccache
{% block extra_env_vars -%}{%- endblock extra_env_vars %}
{% block pre_package_manager -%}{%- endblock pre_package_manager %}
@@ -21,9 +29,10 @@ RUN {{ target.package_manager_command }} {{ target.packages | join(" ") }}
# install libabigail
{% block install_libabigail %}
-{% if build_libabigail %}
+{% if build_libabigail and build_abi and (not "force_disable_abi" in target or not target.force_disable_abi) %}
COPY libabigail /libabigail
-RUN --mount=type=cache,target=/ccache cd /libabigail && mkdir build && autoreconf -i && cd build && ../configure --prefix=/usr/local && make all install && \
+RUN --mount=type=cache,target=/ccache,z cd /libabigail
+{%- if "libabigail_revision" in target %} && git checkout {{ target.libabigail_revision }} {%- endif %} && mkdir build && autoreconf -i && cd build && ../configure --prefix=/usr/local && make all install && \
ldconfig && cd / && rm -rf /libabigail
{% else %}
# libabigail build is disabled
@@ -36,14 +45,15 @@ RUN --mount=type=cache,target=/ccache cd /libabigail && mkdir build && autorecon
# Copy externally pulled DPDK into the container
RUN mkdir /dpdk
-
-COPY dpdk /dpdk
+COPY dpdk-stable /dpdk-stable
# Install meson
{% block install_meson %}
# Install meson from dpdk main
# Writes to the mount are discarded once the container is built and is not shared with other containers or the host
-RUN --mount=type=cache,target=/ccache cd /dpdk && chown -R root /dpdk && git checkout main && sh .ci/linux-setup.sh
+COPY dpdk /dpdk
+RUN --mount=type=cache,target=/ccache,z cd /dpdk && chown -R root /dpdk && git checkout main && sh .ci/linux-setup.sh
+RUN rm -rf /dpdk
{% endblock install_meson %}
ENV RTE_KERNELDIR CHANGE_ME
@@ -52,25 +62,47 @@ RUN mkdir /references
WORKDIR /references
RUN touch abi_versions
# build the abi
-{% if build_abi %}
+{% if build_abi and not target.force_disable_abi %}
{% block build_abi %}
- {% for abi_version in abi.versions %}
- {%- set abi_version_str = abi_version.git_tag -%}
+ {% for version in abi.versions %}
+ {%- set abi_version_str = (version.abi_version.major|string) + "." + (version.abi_version.minor|string) -%}
+ {%- set abi_stage_name = target.name + "_" + abi_version_str -%}
{%- set abi_folder = "/references/" + abi_version_str + "_reference" %}
+ {%- set meets_version_requirements = "minimum_dpdk_version" in target and version.dpdk_version.major >= target.minimum_dpdk_version.major and version.dpdk_version.minor >= target.minimum_dpdk_version.minor and version.dpdk_version.revision >= target.minimum_dpdk_version.revision -%}
+ {% if meets_version_requirements %}
+
+FROM {{ build_base_img }} AS {{ abi_stage_name }}
RUN echo '{{ abi_version_str }}' >> abi_versions
RUN mkdir -p {{ abi_folder }}
# compile DPDK
-RUN --mount=type=cache,target=/ccache \
- mkdir -p /dpdk/build && rm -rf /dpdk/build && cd /dpdk && git clean -xfd && git fetch --tags && git checkout tags/{{ abi_version_str }} && cd /references && \
- meson /dpdk /dpdk/build {% if "cross_file" in target -%}
- --cross-file=/dpdk/{{ target.cross_file }}
- {%- endif %} -Dexamples=all --buildtype=debugoptimized && DESTDIR={{ abi_folder }} ninja -C /dpdk/build install && \
- bash /dpdk/devtools/gen-abi.sh {{ abi_folder }} && mv {{ abi_folder }}/usr/local/include {{ abi_folder }} && \
- rm -rf {{ abi_folder }}/usr && rm -rf /dpdk/build
+RUN --mount=type=cache,target=/ccache,z \
+ mkdir -p /dpdk-stable/build && rm -rf /dpdk-stable/build && cd /dpdk-stable && git clean -xfd && git fetch --tags && git checkout {{ version.dpdk_version.git_tag }} && cd /references && \
+ meson /dpdk-stable /dpdk-stable/build {% if "cross_file" in target -%}
+ --cross-file=/dpdk-stable/{{ target.cross_file }}
+ {%- endif %} -Dexamples=all --buildtype=debugoptimized && DESTDIR={{ abi_folder }} ninja {% if ninja_workers -%}
+ -j {{ ninja_workers }} {% endif -%} -C /dpdk-stable/build install && \
+ {%- if (abi_version_str == '22.0' or abi_version_str == '23.10') %}
+ bash /dpdk-stable/devtools/gen-abi.sh {{ abi_folder }} && mv {{ abi_folder }}/usr/local/include {{ abi_folder }} && \
+ rm -rf {{ abi_folder }}/usr
+ {%- else %}
+ find {{ abi_folder }}/usr/local -name '*.a' -delete && rm -rf {{ abi_folder }}/usr/local/bin && rm -rf {{ abi_folder }}/usr/local/share
+ {%- endif %} && rm -rf /dpdk-stable/build
+ {% endif %}
{% endfor %}
-RUN rm -rf /dpdk
-RUN chmod -R 777 .
+
+FROM {{ build_base_img }} AS {{ target.name }}
+ {% for version in abi.versions %}
+ {%- set abi_version_str = (version.abi_version.major|string) + "." + (version.abi_version.minor|string) -%}
+ {%- set abi_stage_name = target.name + "_" + abi_version_str -%}
+ {%- set abi_folder = "/references/" + abi_version_str + "_reference" %}
+ {%- set meets_version_requirements = "minimum_dpdk_version" in target and version.dpdk_version.major >= target.minimum_dpdk_version.major and version.dpdk_version.minor >= target.minimum_dpdk_version.minor and version.dpdk_version.revision >= target.minimum_dpdk_version.revision -%}
+ {% if meets_version_requirements %}
+RUN mkdir -p {{ abi_folder }}
+COPY --from={{ abi_stage_name }} {{ abi_folder }} {{ abi_folder }}
+ {%- endif %}
+ {%- endfor %}
{% endblock build_abi %}
+RUN chmod -R 777 .
{% else %}
{% endif %}
@@ -79,7 +111,11 @@ RUN chmod -R 777 .
RUN echo '{{ target.extra_information | tojson }}' > /container_info.json
{% endif %}
-COPY ./scripts /scripts
WORKDIR /
+
+{% block copy_extras -%}
+COPY scripts scripts
+{%- endblock copy_extras %}
+
# ------------------------ End {{ target.name }} ------------------------------------------------
diff --git a/containers/template_engine/templates/containers/debian11.dockerfile.j2 b/containers/template_engine/templates/containers/debian11.dockerfile.j2
index 0fd8a68..c52f866 100644
--- a/containers/template_engine/templates/containers/debian11.dockerfile.j2
+++ b/containers/template_engine/templates/containers/debian11.dockerfile.j2
@@ -1,3 +1,3 @@
{#- SPDX-License-Identifier: BSD-3-Clause -#}
{#- Copyright (c) 2022 University of New Hampshire -#}
-{% extends 'containers/debian.dockerfile.j2' %}
+{% extends 'containers/debian.dockerfile.j2' %}
\ No newline at end of file
diff --git a/containers/template_engine/templates/containers/debian11_arm_ipsec.dockerfile.j2 b/containers/template_engine/templates/containers/debian11_arm_ipsec.dockerfile.j2
new file mode 100644
index 0000000..ccef9cb
--- /dev/null
+++ b/containers/template_engine/templates/containers/debian11_arm_ipsec.dockerfile.j2
@@ -0,0 +1,16 @@
+{#- SPDX-License-Identifier: BSD-3-Clause -#}
+{#- Copyright (c) 2022 University of New Hampshire -#}
+{% extends 'containers/debian11.dockerfile.j2' %}
+
+{% block before_meson_after_pip %}
+WORKDIR /opt
+
+# I would use ADD on a git repo, but the support for this was added so recently it doesn't run on my machine.
+RUN git clone --depth 1 --branch SECLIB-IPSEC-2022.05.25 https://git.gitlab.arm.com/arm-reference-solutions/ipsec-mb.git
+
+WORKDIR /opt/ipsec-mb
+RUN make -j $(nproc) && make install
+
+WORKDIR /
+
+{% endblock before_meson_after_pip %}
diff --git a/containers/template_engine/templates/containers/fedora_clang.dockerfile.j2 b/containers/template_engine/templates/containers/fedora_clang.dockerfile.j2
new file mode 100644
index 0000000..bc104ba
--- /dev/null
+++ b/containers/template_engine/templates/containers/fedora_clang.dockerfile.j2
@@ -0,0 +1,7 @@
+{#- SPDX-License-Identifier: BSD-3-Clause -#}
+{#- Copyright (c) 2022 University of New Hampshire -#}
+{% extends 'containers/fedora.dockerfile.j2' %}
+
+{% block extra_env_vars -%}
+ENV CC=clang
+{%- endblock extra_env_vars %}
\ No newline at end of file
diff --git a/containers/template_engine/templates/containers/fedora_coverity.dockerfile.j2 b/containers/template_engine/templates/containers/fedora_coverity.dockerfile.j2
new file mode 100644
index 0000000..f17eb7a
--- /dev/null
+++ b/containers/template_engine/templates/containers/fedora_coverity.dockerfile.j2
@@ -0,0 +1,10 @@
+{#- SPDX-License-Identifier: BSD-3-Clause -#}
+{#- Copyright (c) 2023 University of New Hampshire -#}
+{% extends 'containers/fedora.dockerfile.j2' %}
+
+{% block copy_extras -%}
+COPY scripts scripts
+COPY coverity coverity
+
+ENTRYPOINT /scripts/coverity.sh
+{%- endblock copy_extras %}
\ No newline at end of file
diff --git a/containers/template_engine/templates/containers/rhel.dockerfile.j2 b/containers/template_engine/templates/containers/rhel.dockerfile.j2
index a350e84..b50b2e9 100644
--- a/containers/template_engine/templates/containers/rhel.dockerfile.j2
+++ b/containers/template_engine/templates/containers/rhel.dockerfile.j2
@@ -8,5 +8,9 @@ RUN python3 -m pip install pyelftools
{% block before_meson_after_pip %}
-RUN yum --disableplugin=subscription-manager clean all
-{% endblock %}
\ No newline at end of file
+RUN yum clean all
+{% endblock %}
+
+{% block install_libabigail %}
+{# Install via package manager #}
+{% endblock install_libabigail %}
\ No newline at end of file
diff --git a/containers/template_engine/templates/containers/rhel7.dockerfile.j2 b/containers/template_engine/templates/containers/rhel7.dockerfile.j2
index ccfc0ec..7045b99 100644
--- a/containers/template_engine/templates/containers/rhel7.dockerfile.j2
+++ b/containers/template_engine/templates/containers/rhel7.dockerfile.j2
@@ -9,11 +9,7 @@ RUN yum repolist
RUN sed -i '/\[rhel-7-server-extras-rpms\]/,/^ *\[/ s/enabled\ =\ 0/enabled\ =\ 1/' /etc/yum.repos.d/redhat.repo \
&& sed -i '/\[rhel-7-server-optional-rpms\]/,/^ *\[/ s/enabled\ =\ 0/enabled\ =\ 1/' /etc/yum.repos.d/redhat.repo
RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
-RUN yum --disableplugin=subscription-manager update -y
+RUN yum update -y
RUN yum groupinstall -y 'Development Tools'
-{% endblock %}
-
-{% block install_libabigail %}
-{# Install via package manager #}
-{% endblock install_libabigail %}
\ No newline at end of file
+{% endblock %}
\ No newline at end of file
diff --git a/containers/template_engine/templates/containers/rhel8.dockerfile.j2 b/containers/template_engine/templates/containers/rhel8.dockerfile.j2
index dcaffc9..2824bfd 100644
--- a/containers/template_engine/templates/containers/rhel8.dockerfile.j2
+++ b/containers/template_engine/templates/containers/rhel8.dockerfile.j2
@@ -5,15 +5,11 @@
{% block pre_package_manager %}
# repolist is needed to refresh the RHEL repos from the host this is being built on
RUN yum repolist
-RUN yum --disableplugin=subscription-manager update -y
-RUN yum --disableplugin=subscription-manager config-manager --set-enable codeready-builder-for-rhel-8-$(uname -i)-rpms
+RUN yum update -y
+RUN yum config-manager --set-enable codeready-builder-for-rhel-8-$(uname -i)-rpms
# Required to install ccache
RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm && yum upgrade -y
RUN yum groupinstall -y 'Development Tools'
-{% endblock %}
-
-{% block install_libabigail %}
-{# Install via package manager #}
-{% endblock install_libabigail %}
\ No newline at end of file
+{% endblock %}
\ No newline at end of file
diff --git a/containers/template_engine/templates/containers/rhel9.dockerfile.j2 b/containers/template_engine/templates/containers/rhel9.dockerfile.j2
index 8f0eccc..695f573 100644
--- a/containers/template_engine/templates/containers/rhel9.dockerfile.j2
+++ b/containers/template_engine/templates/containers/rhel9.dockerfile.j2
@@ -5,8 +5,8 @@
{% block pre_package_manager %}
# repolist is needed to refresh the RHEL repos from the host this is being built on
RUN yum repolist
-RUN yum --disableplugin=subscription-manager config-manager --set-enable codeready-builder-for-rhel-9-$(uname -i)-rpms
-RUN yum --disableplugin=subscription-manager update -y
+RUN yum config-manager --set-enable codeready-builder-for-rhel-9-$(uname -i)-rpms
+RUN yum update -y
# Required to install ccache
RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm && yum upgrade -y
@@ -16,10 +16,4 @@ RUN yum groupinstall -y 'Development Tools'
{% block pip_installs %}
RUN python3 -m pip install pyelftools ninja
-{% endblock %}
-
-{% block install_libabigail %}
-COPY libabigail libabigail
-RUN cd libabigail && mkdir build && autoreconf -i && cd build && ../configure --prefix=/usr/local && make all install && \
- ldconfig && cd .. && rm -rf libabigail
-{% endblock install_libabigail %}
\ No newline at end of file
+{% endblock %}
\ No newline at end of file
diff --git a/containers/template_engine/templates/containers/ubuntu22.04.dockerfile.j2 b/containers/template_engine/templates/containers/ubuntu22.04.dockerfile.j2
index 7a8b971..ba22471 100644
--- a/containers/template_engine/templates/containers/ubuntu22.04.dockerfile.j2
+++ b/containers/template_engine/templates/containers/ubuntu22.04.dockerfile.j2
@@ -1,7 +1,3 @@
{#- SPDX-License-Identifier: BSD-3-Clause -#}
{#- Copyright (c) 2022 University of New Hampshire -#}
-{% extends 'containers/ubuntu.dockerfile.j2' %}
-
-{% block install_libabigail %}
-# installed by package manager
-{% endblock install_libabigail %}
\ No newline at end of file
+{% extends 'containers/ubuntu.dockerfile.j2' %}
\ No newline at end of file
diff --git a/containers/template_engine/templates/containers/ubuntu_cross.dockerfile.j2 b/containers/template_engine/templates/containers/ubuntu_cross.dockerfile.j2
index 236efbc..fbdd6dc 100644
--- a/containers/template_engine/templates/containers/ubuntu_cross.dockerfile.j2
+++ b/containers/template_engine/templates/containers/ubuntu_cross.dockerfile.j2
@@ -8,4 +8,5 @@
RUN ln -s $(which ccache) /usr/local/bin/aarch64-linux-gnu-gcc && \
# aarch32 -> ccache
ln -s $(which ccache) /usr/local/bin/arm-linux-gnueabihf-gcc
-{% endblock cross_compilation_setup %}
\ No newline at end of file
+{% endblock cross_compilation_setup %}
+
diff --git a/containers/template_engine/templates/containers/ubuntu_sve.dockerfile.j2 b/containers/template_engine/templates/containers/ubuntu_sve.dockerfile.j2
index 3c3e471..5e940bf 100644
--- a/containers/template_engine/templates/containers/ubuntu_sve.dockerfile.j2
+++ b/containers/template_engine/templates/containers/ubuntu_sve.dockerfile.j2
@@ -7,4 +7,6 @@ RUN ln -s $(which ccache) /usr/local/bin/gcc-10
{% block build_abi %}
# ABI is disabled for this container
+
+FROM {{ build_base_img }} AS {{ target.name }}
{% endblock build_abi %}
\ No newline at end of file
--
2.34.1
next prev parent reply other threads:[~2023-05-23 17:04 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-23 17:04 [PATCH v5 00/11] Community Lab Containers and Builder Engine Adam Hassick
2023-05-23 17:04 ` [PATCH v5 01/11] containers/docs: Add container builder start Adam Hassick
2023-05-25 13:48 ` Aaron Conole
2023-05-23 17:04 ` [PATCH v5 02/11] containers/inventory: Add inventory for container builder Adam Hassick
2023-05-23 17:04 ` [PATCH v5 03/11] containers/builder: Dockerfile creation script Adam Hassick
2023-05-23 17:04 ` [PATCH v5 04/11] containers/templates: Templates for Dockerfiles Adam Hassick
2023-05-23 17:04 ` [PATCH v5 05/11] containers/container_builder: Container for python scripts Adam Hassick
2023-05-23 17:04 ` [PATCH v5 06/11] containers/Makefile: Makefile to automate builds Adam Hassick
2023-05-23 17:04 ` [PATCH v5 07/11] containers/inventory: Add ABI rev and coverity attribute Adam Hassick
2023-05-23 17:04 ` [PATCH v5 08/11] containers/builder: Add arguments to templating script Adam Hassick
2023-05-23 17:04 ` Adam Hassick [this message]
2023-05-23 17:04 ` [PATCH v5 10/11] containers/Makefile: Add new variables and target changes Adam Hassick
2023-05-23 17:04 ` [PATCH v5 11/11] containers/docs: Update README Adam Hassick
2023-05-25 13:45 ` Aaron Conole
2023-06-05 20:09 ` Adam Hassick
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230523170413.812922-10-ahassick@iol.unh.edu \
--to=ahassick@iol.unh.edu \
--cc=aconole@redhat.com \
--cc=alialnu@nvidia.com \
--cc=ci@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).