Repository: canonical/ubuntu.com
Pull request #14959: feat: Build /containers/container-build-service page
Author: login: britneywwc
Labels: name: Review: QA +1
name: Review: Design +1
name: Review: UX +1
name: Review: Code +1 (with changes)
Created: 2025-04-09T07:58:58Z | Merged: 2025-04-10T10:58:57Z

## Done

- Build new page as per [copy doc](https://docs.google.com/document/d/14qW4-vU2Eipd1jwwI55OKIwxzrnpaAC0uo0p7dlFxiQ/edit?tab=t.0) and [design](https://www.figma.com/design/YfNc8KmYqa2e7JgbFo6lXa/ubuntu.com-containers?node-id=652-3593&m=dev)
- Refactor modal file to form generator
- Fly-by work: Replace whitespace and symbols with character entities on `/what-are-containers`

## QA

- Go to https://ubuntu-com-14959.demos.haus/containers/container-build-service
- Check against copy doc and design
- Go to 
  - https://ubuntu-com-14959.demos.haus/containers/container-build-service#get-in-touch
  - https://ubuntu-com-14959.demos.haus/containers#get-in-touch 
  - https://ubuntu-com-14959.demos.haus/containers/chiseled#get-in-touch
- Fill up form, submit and check that it goes through Marketo as expected

## Issue / Card

Fixes [WD-20275](https://warthogs.atlassian.net/browse/WD-20275)

## Screenshots

[If relevant, please include a screenshot.]


## Help

[QA steps](https://discourse.canonical.com/t/qa-steps/152) - [Commit guidelines](https://discourse.canonical.com/t/commit-guidelines/148)


[WD-20275]: https://warthogs.atlassian.net/browse/WD-20275?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ


Diff:
diff --git a/navigation.yaml b/navigation.yaml
index cda504c2f91..f207b1fa48a 100644
--- a/navigation.yaml
+++ b/navigation.yaml
@@ -188,6 +188,8 @@ containers:
       path: /containers/chiseled
     - title: Chiseled and .NET
       path: /containers/chiseled/dotnet
+    - title: Container Build Service
+      path: /containers/container-build-service
 
 ai:
   title: AI / ML
diff --git a/templates/containers/chiseled/index.html b/templates/containers/chiseled/index.html
index 78d3327665e..bc16cce263e 100644
--- a/templates/containers/chiseled/index.html
+++ b/templates/containers/chiseled/index.html
@@ -581,13 +581,7 @@ <h3 class="p-text--small-caps">GitHub</h3>
   </section>
 
   <!-- Set default Marketo information for contact form below-->
-  <div class="u-hide"
-       id="contact-form-container"
-       data-form-location="/shared/forms/interactive/containers"
-       data-form-id="5914"
-       data-lp-id=""
-       data-return-url="https://ubuntu.com/containers#success"
-       data-lp-url="https://pages.ubuntu.com/things-contact-us.html"></div>
+  {% include "/shared/forms/form-template.html" %}
 
   <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/7.9.0/d3.min.js" defer></script>
   <script src="{{ versioned_static('js/dist/chiseled-chart.js') }}" defer></script>
diff --git a/templates/containers/container-build-service.html b/templates/containers/container-build-service.html
new file mode 100644
index 00000000000..273fc553f81
--- /dev/null
+++ b/templates/containers/container-build-service.html
@@ -0,0 +1,398 @@
+{% extends "containers/base_containers.html" %}
+
+{% block title %}Container Build Service{% endblock %}
+
+{% block meta_description %}
+  Canonical's Container Build Service offers custom, secure Docker images with up to 12 years of support. Tailored for enterprise needs.
+{% endblock meta_description %}
+
+{% block meta_copydoc %}
+  https://docs.google.com/document/d/14qW4-vU2Eipd1jwwI55OKIwxzrnpaAC0uo0p7dlFxiQ/edit?tab=t.0
+{% endblock meta_copydoc %}
+
+{% block body_class %}
+  is-paper
+{% endblock body_class %}
+
+{% block content %}
+  <section class="p-strip is-shallow u-no-padding--bottom">
+    <div class="row--50-50 p-section">
+      <div class="col">
+        <h1>
+          Canonical’s
+          <br />
+          Container Build Service
+        </h1>
+      </div>
+      <div class="col">
+        <h2 class="p-heading--5">Your containers your way</h2>
+        <div class="p-section--shallow">
+          <p>
+            Off-the-shelf Docker images not meeting your enterprise needs?  With Canonical, get custom-built, secure,
+            and compliant images tailored to your requirements with up to 12 years of support.
+          </p>
+        </div>
+        <div class="p-cta-block">
+          <a class="p-button--positive js-invoke-modal"
+             href="/containers/contact-us">Get in touch</a>
+          <a href="https://docs.google.com/document/d/1jRK13lfTidtjQKHwEeFrTxA0AVH-V1Cy1mXDfQVIYyg/edit?tab=t.0">Download the datasheet&nbsp;&rsaquo;</a>
+        </div>
+      </div>
+    </div>
+  </section>
+
+  <section class="p-section">
+    <div class="row--25-75">
+      <hr class="p-rule" />
+      <div class="col">
+        <h2 class="p-text--small-caps">Why choose enterprise-grade Docker images</h2>
+      </div>
+      <div class="col">
+        <ul class="p-list--divided">
+          <li class="p-list__item u-no-padding--bottom">
+            <p class="p-heading--2">Secure by design</p>
+          </li>
+          <li class="p-list__item u-no-padding--bottom">
+            <p class="p-heading--2">Minimal, efficient, and fast</p>
+          </li>
+          <li class="p-list__item u-no-padding--bottom">
+            <p class="p-heading--2">12-year LTS support</p>
+          </li>
+          <li class="p-list__item u-no-padding--bottom">
+            <p class="p-heading--2">On any Kubernetes</p>
+          </li>
+        </ul>
+      </div>
+    </div>
+  </section>
+
+  <section class="p-section">
+    <div class="row--50-50">
+      <hr class="p-rule" />
+      <div class="col">
+        <h2>About our Service</h2>
+      </div>
+      <div class="col">
+        <p>
+          What if you want to containerize any open source package in your ecosystem that doesn’t exist as one of our off the shelf containers?
+        </p>
+        <p>
+          Our custom Container Build Service provides long-term support (LTS) for any open source software. Our service ensures your applications
+          remain stable, security maintained, and compatible for a guaranteed 12-year period. There’s no need to worry about outdated dependencies,
+          security vulnerabilities, or compatibility issues affecting your open source software over time.
+        </p>
+        <p>
+          The build service gives you access to a vast open source ecosystem and allows simplified deployment on any CNCF-Kubernetes, public cloud included.
+          It allows enterprises to remain consistent across their environment while reducing maintenance but not forfeiting security.
+        </p>
+      </div>
+    </div>
+  </section>
+
+  <section class="p-section">
+    <div class="row--50-50">
+      <hr class="p-rule" />
+      <div class="col">
+        <h2>What's included</h2>
+      </div>
+      <div class="col">
+        <ul class="p-list--divided">
+          <li class="p-list__item is-ticked">Long term support for a specific version of software</li>
+          <li class="p-list__item is-ticked">Dependency management</li>
+          <li class="p-list__item is-ticked">Image optimization and size reduction</li>
+          <li class="p-list__item is-ticked">Security scanning and hardening</li>
+          <li class="p-list__item is-ticked">Testing and quality assurance</li>
+          <li class="p-list__item is-ticked">Ongoing maintenance and support</li>
+        </ul>
+      </div>
+    </div>
+  </section>
+
+  <section class="p-section">
+    <div class="row--50-50 p-section--shallow">
+      <hr class="p-rule" />
+      <div class="col">
+        <h2>
+          Why do enterprises need
+          <br class="u-hide--small" />
+          custom Docker images?
+        </h2>
+      </div>
+      <div class="col">
+        <p>
+          Standard docker images sometimes don’t work out-of-the-box. Enterprises may require customization to meet compliance,
+          security, and operational needs. Dependency management and manually customizing images is complex and results in security
+          headaches – Canonical makes it simple.
+        </p>
+    </div>
+    <div class="row">
+      <div class="col-start-large-4 col-9">
+        <div class="p-equal-height-row">
+          <div class="p-equal-height-row__col">
+            <div class="p-equal-height-row__item">
+              <div class="p-image-container--3-2-on-small p-image-container--square-on-medium p-image-container--2-3-on-large is-highlighted">
+                {{ image(url="https://assets.ubuntu.com/v1/0d4921b6-Security and compliance.png",
+                                alt="",
+                                width="852",
+                                height="1278",
+                                hi_def=True,
+                                loading="lazy",
+                                attrs={"class": "p-image-container__image"}) | safe
+                }}
+              </div>
+            </div>
+            <div class="p-equal-height-row__item">
+              <hr class="p-rule--highlight u-hide--medium u-hide--small" />
+              <h3 class="p-heading--5">Security and compliance</h3>
+            </div>
+            <div class="p-equal-height-row__item">
+              <p>
+                Meet industry standards like CIS benchmarks and FIPS compliance with signed, trusted images.
+              </p>
+            </div>
+          </div>
+          <div class="p-equal-height-row__col">
+            <div class="p-equal-height-row__item">
+              <div class="p-image-container--3-2-on-small p-image-container--square-on-medium p-image-container--2-3-on-large is-highlighted">
+                {{ image(url="https://assets.ubuntu.com/v1/1220fee3-Enterprise-wide requirements.png",
+                                alt="",
+                                width="852",
+                                height="1278",
+                                hi_def=True,
+                                loading="lazy",
+                                attrs={"class": "p-image-container__image"}) | safe
+                }}
+              </div>
+            </div>
+            <div class="p-equal-height-row__item">
+              <hr class="p-rule--highlight u-hide--medium u-hide--small" />
+              <h3 class="p-heading--5">Enterprise-wide requirements</h3>
+            </div>
+            <div class="p-equal-height-row__item">
+              <p>
+                Ensures every image includes packages and libraries that simplifies management and troubleshooting, which may fulfill enterprise -wide requirements.
+              </p>
+            </div>
+          </div>
+          <div class="p-equal-height-row__col">
+            <div class="p-equal-height-row__item">
+              <div class="p-image-container--3-2-on-small p-image-container--square-on-medium p-image-container--2-3-on-large is-highlighted">
+                {{ image(url="https://assets.ubuntu.com/v1/882080ce-Application-specific customization.png",
+                                alt="",
+                                width="852",
+                                height="1278",
+                                hi_def=True,
+                                loading="lazy",
+                                attrs={"class": "p-image-container__image"}) | safe
+                }}
+              </div>
+            </div>
+            <div class="p-equal-height-row__item">
+              <hr class="p-rule--highlight u-hide--medium u-hide--small" />
+              <h3 class="p-heading--5">Application-specific customization</h3>
+            </div>
+            <div class="p-equal-height-row__item">
+              <p>
+                Customize images with specific dependencies without breaking SLAs or compromising security.
+              </p>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </section>
+
+  <section class="p-section">
+    <div class="row--50-50">
+      <hr class="p-rule" />
+      <div class="col">
+        <h2>
+          How Canonical builds
+          <br class="u-hide--small" />
+          your containers
+        </h2>
+      </div>
+      <div class="col">
+        <ol class="p-list--divided">
+          <li class="p-list__item">Choose the open source software you need</li>
+          <li class="p-list__item">Discuss your specific requirements</li>
+          <li class="p-list__item">Our team analyzes the dependencies required</li>
+          <li class="p-list__item">We build the image and test functionality and security</li>
+          <li class="p-list__item">We deliver the container image and provide ongoing support</li>
+        </ol>
+        <div class="p-cta-block">
+          <a href="/containers/contact-us" class="js-invoke-modal">Contact us&nbsp;&rsaquo;</a>
+        </div>
+      </div>
+    </div>
+  </section>
+
+  <section class="p-section">
+    <div class="row--50-50">
+      <hr class="p-rule" />
+      <div class="col">
+        <h2>A smarter way to containerize</h2>
+      </div>
+      <div class="col">
+        <div class="p-media-container p-strip is-shallow u-darker-background col-3 u-align--center u-vertically-center">
+          {{ image(url="https://assets.ubuntu.com/v1/ec69cd89-A smarter way to containerize.png",
+                    alt="",
+                    width="1800",
+                    height="1200",
+                    hi_def=True,
+                    loading="lazy") | safe
+          }}
+        </div>
+        <p>
+          Say goodbye to manual Docker builds and fragile pipelines.
+          Canonical delivers custom images with security and automation baked in.
+        </p>
+      </div>
+    </div>
+    <div class="row--50-50">
+      <div class="p-section--shallow">
+        <div class="row">
+          <div class="col-9 col-start-large-4">
+            <hr class="p-rule--muted" />
+            <div class="row">
+              <div class="col-3 col-medium-3">
+                <h5>Minimal images</h5>
+              </div>
+              <div class="col-6 col-medium-3">
+                <p>Lightweight, efficient, and stripped down for performance.</p>
+              </div>
+            </div>
+          </div>
+        </div>
+        <div class="row">
+          <div class="col-9 col-start-large-4">
+            <hr class="p-rule--muted" />
+            <div class="row">
+              <div class="col-3 col-medium-3">
+                <h5>Security-first</h5>
+              </div>
+              <div class="col-6 col-medium-3">
+                <p>Vulnerability remediation with SLA-backed patches.</p>
+              </div>
+            </div>
+          </div>
+        </div>
+        <div class="row">
+          <div class="col-9 col-start-large-4">
+            <hr class="p-rule--muted" />
+            <div class="row">
+              <div class="col-3 col-medium-3">
+                <h5>Fully supported</h5>
+              </div>
+              <div class="col-6 col-medium-3">
+                <p>Canonical ensures your containers run reliably for years.</p>
+              </div>
+            </div>
+          </div>
+        </div>
+        <div class="row">
+          <div class="col-9 col-start-large-4">
+            <hr class="p-rule--muted" />
+            <div class="row">
+              <div class="col-3 col-medium-3">
+                <h5>Environment agnostic</h5>
+              </div>
+              <div class="col-6 col-medium-3">
+                <p>Run on any certified Kubernetes platform whether on prem or on a public cloud.</p>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </section>
+
+  <section class="p-section">
+    <div class="u-fixed-width">
+      <hr class="p-rule--highlight" />
+      <h2 class="p-text--small-caps">Run your custom containers anywhere</h2>
+    </div>
+    <div class="row">
+      <div class="col">
+        <div class="p-logo-section">
+          <div class="p-logo-section__items">
+            <div class="p-logo-section__item">
+              {{ image(url="https://assets.ubuntu.com/v1/aca37331-charmed-kubernetes-logo.png",
+                            alt="Charmed Kubernetes",
+                            width="666",
+                            height="312",
+                            hi_def=True,
+                            loading="lazy",
+                            attrs={"class": "p-logo-section__logo"}) | safe
+              }}
+            </div>
+            <div class="p-logo-section__item">
+              {{ image(url="https://assets.ubuntu.com/v1/2c336369-vmware-logo.png",
+                            alt="VMWare",
+                            width="323",
+                            height="312",
+                            hi_def=True,
+                            loading="lazy",
+                            attrs={"class": "p-logo-section__logo"}) | safe
+              }}
+            </div>
+            <div class="p-logo-section__item">
+              {{ image(url="https://assets.ubuntu.com/v1/6feb5237-microsoft-azure-logo.png",
+                            alt="Microsoft Azure",
+                            width="272",
+                            height="312",
+                            hi_def=True,
+                            loading="lazy",
+                            attrs={"class": "p-logo-section__logo"}) | safe
+              }}
+            </div>
+            <div class="p-logo-section__item">
+              {{ image(url="https://assets.ubuntu.com/v1/abb3ce08-amazon-logo.png",
+                            alt="Amazon",
+                            width="283",
+                            height="312",
+                            hi_def=True,
+                            loading="lazy",
+                            attrs={"class": "p-logo-section__logo"}) | safe
+              }}
+            </div>
+            <div class="p-logo-section__item">
+              {{ image(url="https://assets.ubuntu.com/v1/561c0255-google-logo.png",
+                            alt="Google",
+                            width="220",
+                            height="312",
+                            hi_def=True,
+                            loading="lazy",
+                            attrs={"class": "p-logo-section__logo"}) | safe
+              }}
+            </div>
+            <div class="p-logo-section__item">
+              {{ image(url="https://assets.ubuntu.com/v1/18930d67-rancher-logo.png",
+                            alt="Rancher",
+                            width="387",
+                            height="312",
+                            hi_def=True,
+                            loading="lazy",
+                            attrs={"class": "p-logo-section__logo"}) | safe
+              }}
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </section>
+
+  <section class="u-fixed-width">
+    <hr class="p-rule" />
+    <div class="p-strip is-deep">
+      <p class="p-heading--2">
+        <a href="/containers/contact-us" class="js-invoke-modal">Get in touch to discuss your custom your container build&nbsp;&rsaquo;</a>
+      </p>
+    </div>
+  </section>
+
+  {% include "/shared/forms/form-template.html" %}
+
+{% endblock %}
+
+
diff --git a/templates/containers/form-data.json b/templates/containers/form-data.json
new file mode 100644
index 00000000000..20d6a008216
--- /dev/null
+++ b/templates/containers/form-data.json
@@ -0,0 +1,91 @@
+{
+  "form": {
+    "/containers": {
+      "templatePath": "/containers/index.html",
+      "childrenPaths": ["/containers/container-build-service"],
+      "isModal": true,
+      "modalId": "contact-modal",
+      "formData": {
+        "title": "Get in touch with the container team",
+        "introText": "Fill in this form and a member of our team will be in touch shortly.",
+        "formId": "5914",
+        "returnUrl": "/containers#contact-form-success",
+        "lpUrl": "https://pages.ubuntu.com/things-contact-us.html",
+        "product": ""
+      },
+      "fieldsets": [
+        {
+          "title": "How should we get in touch?",
+          "id": "about-you",
+          "noCommentsFromLead": true,
+          "fields": [
+            {
+              "type": "text",
+              "id": "company",
+              "label": "Company name"
+            },
+            {
+              "type": "text",
+              "id": "title",
+              "label": "Job title"
+            },
+            {
+              "type": "country",
+              "label": "Country",
+              "isRequired": true
+            },
+            {
+              "type": "tel",
+              "id": "phone",
+              "label": "Mobile/cell phone number",
+              "isRequired": true
+            }
+          ]
+        }
+      ]
+    },
+    "/containers/chiseled": {
+      "templatePath": "/containers/chiseled/index.html",
+      "isModal": true,
+      "modalId": "contact-modal",
+      "formData": {
+        "title": "Get in touch with the container team",
+        "introText": "Fill in this form and a member of our team will be in touch shortly.",
+        "formId": "5914",
+        "returnUrl": "/containers#contact-form-success",
+        "lpUrl": "https://pages.ubuntu.com/things-contact-us.html",
+        "product": ""
+      },
+      "fieldsets": [
+        {
+          "title": "How should we get in touch?",
+          "id": "about-you",
+          "noCommentsFromLead": true,
+          "fields": [
+            {
+              "type": "text",
+              "id": "company",
+              "label": "Company name"
+            },
+            {
+              "type": "text",
+              "id": "title",
+              "label": "Job title"
+            },
+            {
+              "type": "country",
+              "label": "Country",
+              "isRequired": true
+            },
+            {
+              "type": "tel",
+              "id": "phone",
+              "label": "Mobile/cell phone number",
+              "isRequired": true
+            }
+          ]
+        }
+      ]
+    }
+  }
+}
diff --git a/templates/containers/index.html b/templates/containers/index.html
index 28a9e3869ae..04d0b807b77 100644
--- a/templates/containers/index.html
+++ b/templates/containers/index.html
@@ -472,24 +472,9 @@ <h2>Container resources</h2>
         </ul>
       </div>
     </div>
-  </section>
+  </div>
 
-  <hr class="p-rule is-fixed-width" />
-  <section class="p-strip is-deep">
-    <div class="u-fixed-width">
-      <h2>
-        <a href="/containers/contact-us" class="js-invoke-modal">Get in touch to find or build your ideal container &nbsp;&rsaquo;</a>
-      </h2>
-    </div>
-  </section>
-  <!-- Set default Marketo information for contact form below-->
-  <div class="u-hide"
-       id="contact-form-container"
-       data-form-location="/shared/forms/interactive/containers"
-       data-form-id="5914"
-       data-lp-id=""
-       data-return-url="https://ubuntu.com/containers#success"
-       data-lp-url="https://pages.ubuntu.com/things-contact-us.html"></div>
+  {% include "/shared/forms/form-template.html" %}
 
   <script src="{{ versioned_static('js/dist/tabbedContent.js') }}"></script>
 
diff --git a/templates/containers/what-are-containers.html b/templates/containers/what-are-containers.html
index 0c9f691f0c1..a67b14b3f05 100644
--- a/templates/containers/what-are-containers.html
+++ b/templates/containers/what-are-containers.html
@@ -293,7 +293,7 @@ <h3 class="p-heading--5">Whitepaper</h3>
       <p class="p-heading--2">
         Get your questions on containers answered today.
         <br />
-        <a href="/containers/contact-us?product=containers-overview">Contact us ›</a>
+        <a href="/containers/contact-us?product=containers-overview">Contact us&nbsp;&rsaquo;</a>
       </p>
     </div>
   </section>
diff --git a/templates/shared/forms/interactive/containers.html b/templates/shared/forms/interactive/containers.html
deleted file mode 100644
index 4fb04f84230..00000000000
--- a/templates/shared/forms/interactive/containers.html
+++ /dev/null
@@ -1,210 +0,0 @@
-<div class="p-modal" id="contact-modal">
-  <div class="p-modal__dialog is-wide-modal"
-       role="dialog"
-       aria-labelledby="modal-title"
-       aria-describedby="modal-description">
-    <header class="p-modal__header"
-            style="display: block;
-                   border-bottom: 0;
-                   overflow: auto;
-                   padding-left: 1.5rem">
-      <button class="p-modal__close js-close"
-              aria-label="Close active modal"
-              style="margin-left: -1rem">Close</button>
-      <h3 id="modal-title">Get in touch with the container team</h3>
-    </header>
-
-    <div class="js-pagination js-pagination--1">
-      <div class="p-section u-sv-3">
-        <hr class="p-rule is-fixed-width" />
-        <div class="row">
-          <div class="col">Fill in this form and a member of our team will be in touch shortly.</div>
-        </div>
-
-      </div>
-      <form action="/marketo/submit" method="post" id="mktoForm_%% formid %%">
-        <div class="p-section">
-          <hr class="p-rule is-fixed-width" />
-          <fieldset class="p-fieldset-section"
-                    id="about-you"
-                    aria-labelledby="about-you-legend">
-            <div class="row--50-50">
-              <div class="col">
-                <legend class="p-heading--4" id="about-you-legend">How should we get in touch?</legend>
-              </div>
-              <div class="col">
-                <ul class="p-list">
-                  <li class="p-list__item">
-                    <label class="is-required" for="firstName">First name:</label>
-                    <input required id="firstName" name="firstName" maxlength="255" type="text" />
-                  </li>
-                  <li class="p-list__item">
-                    <label class="is-required" for="lastName">Last name:</label>
-                    <input required id="lastName" name="lastName" maxlength="255" type="text" />
-                  </li>
-                  <li class="p-list__item">
-                    <label for="company">Company:</label>
-                    <input id="company" name="company" maxlength="255" type="text" />
-                  </li>
-                  <li class="p-list__item">
-                    <label for="title">Job title:</label>
-                    <input id="title" name="title" maxlength="255" type="text" />
-                  </li>
-                  <li class="p-list__item">
-                    <label class="is-required" for="email">Email address:</label>
-                    <input required
-                           id="email"
-                           name="email"
-                           maxlength="255"
-                           type="email"
-                           pattern="^[^ ]+@[^ ]+\.[a-z]{2,26}$" />
-                  </li>
-                  <li class="p-list__item">
-                    <label class="is-required" for="phone">Mobile/cell phone number:</label>
-                    <input required id="phone" name="phone" maxlength="255" type="tel" />
-                  </li>
-                  <!-- country -->
-                  {% include "shared/forms/_country.html" %}
-                </ul>
-                <ul class="p-list">
-                  <li class="p-list__item">
-                    <label class="p-checkbox">
-                      <input class="p-checkbox__input"
-                             value="yes"
-                             aria-labelledby="canonicalUpdatesOptIn"
-                             name="canonicalUpdatesOptIn"
-                             type="checkbox" />
-                      <span class="p-checkbox__label" id="canonicalUpdatesOptIn">I agree to receive information about Canonical's products and services.</span>
-                    </label>
-                  </li>
-                  <li class="p-list__item u-sv3">
-                    By submitting this form, I confirm that I have read and agree to <a href="/legal/data-privacy/contact">Canonical's Privacy Notice</a> and <a href="/legal/data-privacy">Privacy Policy</a>.
-                  </li>
-                  {# These are honey pot fields to catch bots #}
-                  <li class="u-off-screen">
-                    <label class="website" for="website">Website:</label>
-                    <input name="website"
-                           type="text"
-                           class="website"
-                           autocomplete="off"
-                           value=""
-                           id="website"
-                           tabindex="-1" />
-                  </li>
-                  <li class="u-off-screen">
-                    <label class="name" for="name">Name:</label>
-                    <input name="name"
-                           type="text"
-                           class="name"
-                           autocomplete="off"
-                           value=""
-                           id="name"
-                           tabindex="-1" />
-                  </li>
-                  {# End of honey pots #}
-                  <li class="p-list__item">
-                    <button type="submit" class="p-button--positive">Submit</button>
-                  </li>
-                </ul>
-                <div class="u-off-screen">
-                  <label for="Comments_from_lead__c">
-                    <h3 class="p-heading--4">Your comments</h3>
-                    <textarea id="Comments_from_lead__c"
-                              name="Comments_from_lead__c"
-                              rows="5"
-                              maxlength="2000"></textarea>
-                  </label>
-                </div>
-                <input type="hidden"
-                       aria-hidden="true"
-                       aria-label="hidden field"
-                       name="formid"
-                       value="%% formid %%" />
-                <input type="hidden"
-                       aria-hidden="true"
-                       aria-label="hidden field"
-                       name="returnURL"
-                       value="%% returnURL %%" />
-                <input type="hidden"
-                       aria-hidden="true"
-                       aria-label="hidden field"
-                       name="Consent_to_Processing__c"
-                       value="yes" />
-                <input type="hidden"
-                       aria-hidden="true"
-                       aria-label="hidden field"
-                       name="utm_campaign"
-                       id="utm_campaign"
-                       value="" />
-                <input type="hidden"
-                       aria-hidden="true"
-                       aria-label="hidden field"
-                       name="utm_medium"
-                       id="utm_medium"
-                       value="" />
-                <input type="hidden"
-                       aria-hidden="true"
-                       aria-label="hidden field"
-                       name="utm_source"
-                       id="utm_source"
-                       value="" />
-                <input type="hidden"
-                       aria-hidden="true"
-                       aria-label="hidden field"
-                       name="utm_content"
-                       id="utm_content"
-                       value="" />
-                <input type="hidden"
-                       aria-hidden="true"
-                       aria-label="hidden field"
-                       name="utm_term"
-                       id="utm_term"
-                       value="" />
-                <input type="hidden"
-                       aria-hidden="true"
-                       aria-label="hidden field"
-                       name="GCLID__c"
-                       id="GCLID__c"
-                       value="" />
-                <input type="hidden"
-                       aria-hidden="true"
-                       aria-label="hidden field"
-                       name="Facebook_Click_ID__c"
-                       id="Facebook_Click_ID__c"
-                       value="" />
-                <input type="hidden"
-                       aria-hidden="true"
-                       aria-label="hidden field"
-                       id="preferredLanguage"
-                       name="preferredLanguage"
-                       maxlength="255"
-                       value="" />
-              </div>
-            </div>
-          </fieldset>
-        </div>
-      </form>
-    </div>
-
-    <div class="js-pagination js-pagination--3 u-hide">
-      <div class="row u-no-padding">
-        <div class="u-equal-height">
-          <div class="col-7">
-            <h3 class="p-heading--4">Thank you for enquiring about embedded Ubuntu</h3>
-            <p class="p-heading--4">A member of our team will be in touch within one working day.</p>
-          </div>
-          <div class="col-5 u-vertically-center u-hide--medium u-hide--small u-align--center">
-            {{ image(url="https://assets.ubuntu.com/v1/cbae9a60-thank_you_orange_cmyk.svg",
-                        alt="smile",
-                        width="200",
-                        height="200",
-                        hi_def=True,
-                        loading="auto") | safe
-            }}
-          </div>
-        </div>
-      </div>
-      <a class="js-close p-button" href="">Close</a>
-    </div>
-  </div>
-</div>


Reviews:
user: login: petesfrench
body: LGTM, a couple minor comments
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-10T09:39:06Z
user: login: britneywwc
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-10T10:38:56Z
user: login: britneywwc
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-10T10:41:38Z

Review comments:
diff_hunk: @@ -0,0 +1,397 @@
+{% extends "containers/base_containers.html" %}
+
+{% block title %}Container Build Service{% endblock %}
+
+{% block meta_description %}
+  Canonical's Container Build Service offers custom, secure Docker images with up to 12 years of support. Tailored for enterprise needs.
+{% endblock meta_description %}
+
+{% block meta_copydoc %}
+  https://docs.google.com/document/d/14qW4-vU2Eipd1jwwI55OKIwxzrnpaAC0uo0p7dlFxiQ/edit?tab=t.0
+{% endblock meta_copydoc %}
+
+{% block body_class %}
+  is-paper
+{% endblock body_class %}
+
+{% block content %}
+  <section class="p-strip is-shallow u-no-padding--bottom">
+    <div class="row--50-50 p-section">
+      <div class="col">
+        <h1>
+          Canonical’s
+          <br />
+          Container Build Service
+        </h1>
+      </div>
+      <div class="col">
+        <h2 class="p-heading--5">Your containers your way</h2>
+        <div class="p-section--shallow">
+          <p>
+            Off-the-shelf Docker images not meeting your enterprise needs?  With Canonical, get custom-built, secure,
+            and compliant images tailored to your requirements with up to 12 years of support.
+          </p>
+        </div>
+        <div class="p-cta-block">
+          <a class="p-button--positive js-invoke-modal"
+             href="/containers/contact-us">Get in touch</a>
+          <a href="https://docs.google.com/document/d/1jRK13lfTidtjQKHwEeFrTxA0AVH-V1Cy1mXDfQVIYyg/edit?tab=t.0">Download the datasheet&nbsp;&rsaquo;</a>
path: templates/containers/container-build-service.html
user: login: petesfrench
body: Do we have a note somewhere to update this when it is built?
created_at: 2025-04-10T09:25:23Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,397 @@
+{% extends "containers/base_containers.html" %}
+
+{% block title %}Container Build Service{% endblock %}
+
+{% block meta_description %}
+  Canonical's Container Build Service offers custom, secure Docker images with up to 12 years of support. Tailored for enterprise needs.
+{% endblock meta_description %}
+
+{% block meta_copydoc %}
+  https://docs.google.com/document/d/14qW4-vU2Eipd1jwwI55OKIwxzrnpaAC0uo0p7dlFxiQ/edit?tab=t.0
+{% endblock meta_copydoc %}
+
+{% block body_class %}
+  is-paper
+{% endblock body_class %}
+
+{% block content %}
+  <section class="p-strip is-shallow u-no-padding--bottom">
+    <div class="row--50-50 p-section">
+      <div class="col">
+        <h1>
+          Canonical’s
+          <br />
+          Container Build Service
+        </h1>
+      </div>
+      <div class="col">
+        <h2 class="p-heading--5">Your containers your way</h2>
+        <div class="p-section--shallow">
+          <p>
+            Off-the-shelf Docker images not meeting your enterprise needs?  With Canonical, get custom-built, secure,
+            and compliant images tailored to your requirements with up to 12 years of support.
+          </p>
+        </div>
+        <div class="p-cta-block">
+          <a class="p-button--positive js-invoke-modal"
+             href="/containers/contact-us">Get in touch</a>
+          <a href="https://docs.google.com/document/d/1jRK13lfTidtjQKHwEeFrTxA0AVH-V1Cy1mXDfQVIYyg/edit?tab=t.0">Download the datasheet&nbsp;&rsaquo;</a>
+        </div>
+      </div>
+    </div>
+  </section>
+
+  <section class="p-section">
+    <div class="row--25-75">
+      <hr class="p-rule" />
+      <div class="col">
+        <h2 class="p-text--small-caps">Why choose enterprise-grade Docker images</h2>
+      </div>
+      <div class="col">
+        <ul class="p-list--divided">
+          <li class="p-list__item u-no-padding--bottom">
+            <p class="p-heading--2">Secure by design</p>
+          </li>
+          <li class="p-list__item u-no-padding--bottom">
+            <p class="p-heading--2">Minimal, efficient, and fast</p>
+          </li>
+          <li class="p-list__item u-no-padding--bottom">
+            <p class="p-heading--2">12-year LTS support</p>
+          </li>
+          <li class="p-list__item u-no-padding--bottom">
+            <p class="p-heading--2">On any Kubernetes</p>
+          </li>
+        </ul>
+      </div>
+    </div>
+  </section>
+
+  <section class="p-section">
+    <div class="row--50-50">
+      <hr class="p-rule" />
+      <div class="col">
+        <h2>About our Service</h2>
+      </div>
+      <div class="col">
+        <p>
+          What if you want to containerize any open source package in your ecosystem that doesn’t exist as one of our off the shelf containers?
+        </p>
+        <p>
+          Our custom Container Build Service provides long-term support (LTS) for any open source software. Our service ensures your applications
+          remain stable, security maintained, and compatible for a guaranteed 12-year period. There’s no need to worry about outdated dependencies,
+          security vulnerabilities, or compatibility issues affecting your open source software over time.
+        </p>
+        <p>
+          The build service gives you access to a vast open source ecosystem and allows simplified deployment on any CNCF-Kubernetes, public cloud included.
+          It allows enterprises to remain consistent across their environment while reducing maintenance but not forfeiting security.
+        </p>
+      </div>
+    </div>
+  </section>
+
+  <section class="p-section">
+    <div class="row--50-50">
+      <hr class="p-rule" />
+      <div class="col">
+        <h2>What's included</h2>
+      </div>
+      <div class="col">
+        <ul class="p-list--divided">
+          <li class="p-list__item is-ticked">Long term support for a specific version of software</li>
+          <li class="p-list__item is-ticked">Dependency management</li>
+          <li class="p-list__item is-ticked">Image optimization and size reduction</li>
+          <li class="p-list__item is-ticked">Security scanning and hardening</li>
+          <li class="p-list__item is-ticked">Testing and quality assurance</li>
+          <li class="p-list__item is-ticked">Ongoing maintenance and support</li>
+        </ul>
+      </div>
+    </div>
+  </section>
+
+  <section class="p-section">
+    <div class="row--50-50 p-section--shallow">
+      <hr class="p-rule" />
+      <div class="col">
+        <h2>
+          Why do enterprises need
+          <br class="u-hide--small" />
+          custom Docker images?
+        </h2>
+      </div>
+      <div class="col">
+        <p>
+          Standard docker images sometimes don’t work out-of-the-box. Enterprises may require customization to meet compliance,
+          security, and operational needs. Dependency management and manually customizing images is complex and results in security
+          headaches – Canonical makes it simple.
+        </p>
+    </div>
+    <div class="row">
+      <div class="col-start-large-4 col-9">
+        <div class="p-equal-height-row">
+          <div class="p-equal-height-row__col">
+            <div class="p-equal-height-row__item">
+              <div class="p-image-container--3-2-on-small p-image-container--square-on-medium p-image-container--2-3-on-large is-highlighted">
+                {{ image(url="https://assets.ubuntu.com/v1/0d4921b6-Security and compliance.png",
+                                alt="",
+                                width="852",
+                                height="1278",
+                                hi_def=True,
+                                loading="lazy",
+                                attrs={"claas": "p-image-container__image"}) | safe
+                }}
+              </div>
+            </div>
+            <div class="p-equal-height-row__item">
+              <hr class="p-rule--highlight u-hide--medium u-hide--small" />
+              <h3 class="p-heading--5">Security and compliance</h3>
+            </div>
+            <div class="p-equal-height-row__item">
+              <p>
+                Meet industry standards like CIS benchmarks and FIPS compliance with signed, trusted images.
+              </p>
+            </div>
+          </div>
+          <div class="p-equal-height-row__col">
+            <div class="p-equal-height-row__item">
+              <div class="p-image-container--3-2-on-small p-image-container--square-on-medium p-image-container--2-3-on-large is-highlighted">
+                {{ image(url="https://assets.ubuntu.com/v1/1220fee3-Enterprise-wide requirements.png",
+                                alt="",
+                                width="852",
+                                height="1278",
+                                hi_def=True,
+                                loading="lazy",
+                                attrs={"claas": "p-image-container__image"}) | safe
+                }}
+              </div>
+            </div>
+            <div class="p-equal-height-row__item">
+              <hr class="p-rule--highlight u-hide--medium u-hide--small" />
+              <h3 class="p-heading--5">Enterprise-wide requirements</h3>
+            </div>
+            <div class="p-equal-height-row__item">
+              <p>
+                Ensures every image includes packages and libraries that simplifies management and troubleshooting, which may fulfill enterprise -wide requirements.
+              </p>
+            </div>
+          </div>
+          <div class="p-equal-height-row__col">
+            <div class="p-equal-height-row__item">
+              <div class="p-image-container--3-2-on-small p-image-container--square-on-medium p-image-container--2-3-on-large is-highlighted">
+                {{ image(url="https://assets.ubuntu.com/v1/882080ce-Application-specific customization.png",
+                                alt="",
+                                width="852",
+                                height="1278",
+                                hi_def=True,
+                                loading="lazy") | safe
+                }}
+              </div>
+            </div>
+            <div class="p-equal-height-row__item">
+              <hr class="p-rule--highlight u-hide--medium u-hide--small" />
+              <h3 class="p-heading--5">Application-specific customization:</h3>
path: templates/containers/container-build-service.html
user: login: petesfrench
body: ```suggestion
              <h3 class="p-heading--5">Application-specific customization</h3>
```
To match the other headings, I have updated the copydoc
created_at: 2025-04-10T09:27:12Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,397 @@
+{% extends "containers/base_containers.html" %}
+
+{% block title %}Container Build Service{% endblock %}
+
+{% block meta_description %}
+  Canonical's Container Build Service offers custom, secure Docker images with up to 12 years of support. Tailored for enterprise needs.
+{% endblock meta_description %}
+
+{% block meta_copydoc %}
+  https://docs.google.com/document/d/14qW4-vU2Eipd1jwwI55OKIwxzrnpaAC0uo0p7dlFxiQ/edit?tab=t.0
+{% endblock meta_copydoc %}
+
+{% block body_class %}
+  is-paper
+{% endblock body_class %}
+
+{% block content %}
+  <section class="p-strip is-shallow u-no-padding--bottom">
+    <div class="row--50-50 p-section">
+      <div class="col">
+        <h1>
+          Canonical’s
+          <br />
+          Container Build Service
+        </h1>
+      </div>
+      <div class="col">
+        <h2 class="p-heading--5">Your containers your way</h2>
+        <div class="p-section--shallow">
+          <p>
+            Off-the-shelf Docker images not meeting your enterprise needs?  With Canonical, get custom-built, secure,
+            and compliant images tailored to your requirements with up to 12 years of support.
+          </p>
+        </div>
+        <div class="p-cta-block">
+          <a class="p-button--positive js-invoke-modal"
+             href="/containers/contact-us">Get in touch</a>
+          <a href="https://docs.google.com/document/d/1jRK13lfTidtjQKHwEeFrTxA0AVH-V1Cy1mXDfQVIYyg/edit?tab=t.0">Download the datasheet&nbsp;&rsaquo;</a>
+        </div>
+      </div>
+    </div>
+  </section>
+
+  <section class="p-section">
+    <div class="row--25-75">
+      <hr class="p-rule" />
+      <div class="col">
+        <h2 class="p-text--small-caps">Why choose enterprise-grade Docker images</h2>
+      </div>
+      <div class="col">
+        <ul class="p-list--divided">
+          <li class="p-list__item u-no-padding--bottom">
+            <p class="p-heading--2">Secure by design</p>
+          </li>
+          <li class="p-list__item u-no-padding--bottom">
+            <p class="p-heading--2">Minimal, efficient, and fast</p>
+          </li>
+          <li class="p-list__item u-no-padding--bottom">
+            <p class="p-heading--2">12-year LTS support</p>
+          </li>
+          <li class="p-list__item u-no-padding--bottom">
+            <p class="p-heading--2">On any Kubernetes</p>
+          </li>
+        </ul>
+      </div>
+    </div>
+  </section>
+
+  <section class="p-section">
+    <div class="row--50-50">
+      <hr class="p-rule" />
+      <div class="col">
+        <h2>About our Service</h2>
+      </div>
+      <div class="col">
+        <p>
+          What if you want to containerize any open source package in your ecosystem that doesn’t exist as one of our off the shelf containers?
+        </p>
+        <p>
+          Our custom Container Build Service provides long-term support (LTS) for any open source software. Our service ensures your applications
+          remain stable, security maintained, and compatible for a guaranteed 12-year period. There’s no need to worry about outdated dependencies,
+          security vulnerabilities, or compatibility issues affecting your open source software over time.
+        </p>
+        <p>
+          The build service gives you access to a vast open source ecosystem and allows simplified deployment on any CNCF-Kubernetes, public cloud included.
+          It allows enterprises to remain consistent across their environment while reducing maintenance but not forfeiting security.
+        </p>
+      </div>
+    </div>
+  </section>
+
+  <section class="p-section">
+    <div class="row--50-50">
+      <hr class="p-rule" />
+      <div class="col">
+        <h2>What's included</h2>
+      </div>
+      <div class="col">
+        <ul class="p-list--divided">
+          <li class="p-list__item is-ticked">Long term support for a specific version of software</li>
+          <li class="p-list__item is-ticked">Dependency management</li>
+          <li class="p-list__item is-ticked">Image optimization and size reduction</li>
+          <li class="p-list__item is-ticked">Security scanning and hardening</li>
+          <li class="p-list__item is-ticked">Testing and quality assurance</li>
+          <li class="p-list__item is-ticked">Ongoing maintenance and support</li>
+        </ul>
+      </div>
+    </div>
+  </section>
+
+  <section class="p-section">
+    <div class="row--50-50 p-section--shallow">
+      <hr class="p-rule" />
+      <div class="col">
+        <h2>
+          Why do enterprises need
+          <br class="u-hide--small" />
+          custom Docker images?
+        </h2>
+      </div>
+      <div class="col">
+        <p>
+          Standard docker images sometimes don’t work out-of-the-box. Enterprises may require customization to meet compliance,
+          security, and operational needs. Dependency management and manually customizing images is complex and results in security
+          headaches – Canonical makes it simple.
+        </p>
+    </div>
+    <div class="row">
+      <div class="col-start-large-4 col-9">
+        <div class="p-equal-height-row">
+          <div class="p-equal-height-row__col">
+            <div class="p-equal-height-row__item">
+              <div class="p-image-container--3-2-on-small p-image-container--square-on-medium p-image-container--2-3-on-large is-highlighted">
+                {{ image(url="https://assets.ubuntu.com/v1/0d4921b6-Security and compliance.png",
+                                alt="",
+                                width="852",
+                                height="1278",
+                                hi_def=True,
+                                loading="lazy",
+                                attrs={"claas": "p-image-container__image"}) | safe
+                }}
+              </div>
+            </div>
+            <div class="p-equal-height-row__item">
+              <hr class="p-rule--highlight u-hide--medium u-hide--small" />
+              <h3 class="p-heading--5">Security and compliance</h3>
+            </div>
+            <div class="p-equal-height-row__item">
+              <p>
+                Meet industry standards like CIS benchmarks and FIPS compliance with signed, trusted images.
+              </p>
+            </div>
+          </div>
+          <div class="p-equal-height-row__col">
+            <div class="p-equal-height-row__item">
+              <div class="p-image-container--3-2-on-small p-image-container--square-on-medium p-image-container--2-3-on-large is-highlighted">
+                {{ image(url="https://assets.ubuntu.com/v1/1220fee3-Enterprise-wide requirements.png",
+                                alt="",
+                                width="852",
+                                height="1278",
+                                hi_def=True,
+                                loading="lazy",
+                                attrs={"claas": "p-image-container__image"}) | safe
+                }}
+              </div>
+            </div>
+            <div class="p-equal-height-row__item">
+              <hr class="p-rule--highlight u-hide--medium u-hide--small" />
+              <h3 class="p-heading--5">Enterprise-wide requirements</h3>
+            </div>
+            <div class="p-equal-height-row__item">
+              <p>
+                Ensures every image includes packages and libraries that simplifies management and troubleshooting, which may fulfill enterprise -wide requirements.
+              </p>
+            </div>
+          </div>
+          <div class="p-equal-height-row__col">
+            <div class="p-equal-height-row__item">
+              <div class="p-image-container--3-2-on-small p-image-container--square-on-medium p-image-container--2-3-on-large is-highlighted">
+                {{ image(url="https://assets.ubuntu.com/v1/882080ce-Application-specific customization.png",
+                                alt="",
+                                width="852",
+                                height="1278",
+                                hi_def=True,
+                                loading="lazy") | safe
+                }}
+              </div>
+            </div>
+            <div class="p-equal-height-row__item">
+              <hr class="p-rule--highlight u-hide--medium u-hide--small" />
+              <h3 class="p-heading--5">Application-specific customization:</h3>
path: templates/containers/container-build-service.html
user: login: britneywwc
body: Thank you!
created_at: 2025-04-10T10:38:56Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,397 @@
+{% extends "containers/base_containers.html" %}
+
+{% block title %}Container Build Service{% endblock %}
+
+{% block meta_description %}
+  Canonical's Container Build Service offers custom, secure Docker images with up to 12 years of support. Tailored for enterprise needs.
+{% endblock meta_description %}
+
+{% block meta_copydoc %}
+  https://docs.google.com/document/d/14qW4-vU2Eipd1jwwI55OKIwxzrnpaAC0uo0p7dlFxiQ/edit?tab=t.0
+{% endblock meta_copydoc %}
+
+{% block body_class %}
+  is-paper
+{% endblock body_class %}
+
+{% block content %}
+  <section class="p-strip is-shallow u-no-padding--bottom">
+    <div class="row--50-50 p-section">
+      <div class="col">
+        <h1>
+          Canonical’s
+          <br />
+          Container Build Service
+        </h1>
+      </div>
+      <div class="col">
+        <h2 class="p-heading--5">Your containers your way</h2>
+        <div class="p-section--shallow">
+          <p>
+            Off-the-shelf Docker images not meeting your enterprise needs?  With Canonical, get custom-built, secure,
+            and compliant images tailored to your requirements with up to 12 years of support.
+          </p>
+        </div>
+        <div class="p-cta-block">
+          <a class="p-button--positive js-invoke-modal"
+             href="/containers/contact-us">Get in touch</a>
+          <a href="https://docs.google.com/document/d/1jRK13lfTidtjQKHwEeFrTxA0AVH-V1Cy1mXDfQVIYyg/edit?tab=t.0">Download the datasheet&nbsp;&rsaquo;</a>
path: templates/containers/container-build-service.html
user: login: britneywwc
body: I left a comment for the PM [here](https://docs.google.com/document/d/14qW4-vU2Eipd1jwwI55OKIwxzrnpaAC0uo0p7dlFxiQ/edit?disco=AAABefM9On0), they're currently OOO till Monday
created_at: 2025-04-10T10:41:38Z
author_association: CONTRIBUTOR

PR comments:
user: login: webteam-app
created_at: 2025-04-09T07:59:04Z
body: ### [<img src='https://assets.ubuntu.com/v1/6baef514-ubuntu-circle-of-friends-large.svg' height=32 width=32> Demo</img>](https://ubuntu-com-14959.demos.haus)
### [<img src='https://assets.ubuntu.com/v1/e512b0e2-jenkins.svg' height=32 width=32> Jenkins </img>](https://jenkins.canonical.com/webteam/job/start-demo/10106)
### [<img src='https://assets.ubuntu.com/v1/7144ec6d-logo-jaas-icon.svg' height=32 width=32> demos.haus </img>](https://demos.haus)

author_association: NONE
user: login: codecov[bot]
created_at: 2025-04-09T08:00:58Z
body: ## [Codecov](https://app.codecov.io/gh/canonical/ubuntu.com/pull/14959?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=canonical) Report
All modified and coverable lines are covered by tests :white_check_mark:
> Project coverage is 72.06%. Comparing base [(`c129fb0`)](https://app.codecov.io/gh/canonical/ubuntu.com/commit/c129fb074309146d517d9c4064e4ad28cc6ae301?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=canonical) to head [(`d08d7c0`)](https://app.codecov.io/gh/canonical/ubuntu.com/commit/d08d7c00f6b1ae4790459a795ef51c31423489f0?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=canonical).
> Report is 17 commits behind head on feature-containers.

<details><summary>Additional details and impacted files</summary>


```diff
@@                  Coverage Diff                   @@
##           feature-containers   #14959      +/-   ##
======================================================
+ Coverage               72.01%   72.06%   +0.05%     
======================================================
  Files                     120      120              
  Lines                    3462     3462              
  Branches                 1200     1200              
======================================================
+ Hits                     2493     2495       +2     
+ Misses                    939      937       -2     
  Partials                   30       30              
```

[see 1 file with indirect coverage changes](https://app.codecov.io/gh/canonical/ubuntu.com/pull/14959/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=canonical)

</details>
<details><summary> :rocket: New features to boost your workflow: </summary>

- :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
- :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
</details>
author_association: NONE
user: login: kim-isaac
created_at: 2025-04-10T07:32:48Z
body: Thanks @britneywwc , looks great and I have two comments below:

- [x] Could you include image for 'Why do enterprises need custom Docker images?' on small - medium dimension like [this](https://vanillaframework.io/docs/patterns/equal-height-row#full-example)?
- [x] Would it be possible to use 50 50 row on medium for 'A smarter way to containerize' tiered item?
author_association: NONE
user: login: Sophie-32
created_at: 2025-04-10T07:50:14Z
body: - [x] Sub-headings in bold should have h3 HTML tag please - ![Screen Shot 2025-04-10 at 9 47 09 AM](https://github.com/user-attachments/assets/d7784a4f-410d-4de5-bb49-b8a1189ed6b1)

+1 with that change

author_association: NONE
user: login: kim-isaac
created_at: 2025-04-10T08:40:16Z
body: Thanks @britneywwc , just one more think here:
<img width="419" alt="image" src="https://github.com/user-attachments/assets/0653eee3-c524-4c95-90b1-3e6ab11d3021" />

- [x] for the mobile dimension, could you change the image ratio to 3:2 like this?

I'll add +1 with this change!

author_association: NONE
user: login: britneywwc
created_at: 2025-04-10T09:15:35Z
body: @kim-isaac Could you please upload the assets for equal height in a similar dimension as the [examples you provided](https://vanillaframework.io/docs/examples/patterns/equal-height-row/4-items-per-column-responsive?theme=light)? 

The image container is in 3:2 ratio on smaller screens, but the dimensions still retain
![Screenshot 2025-04-10 at 5 13 57 PM](https://github.com/user-attachments/assets/da302bd1-772b-4246-869a-53ed23aabbfa)

author_association: CONTRIBUTOR
user: login: petesfrench
created_at: 2025-04-10T09:33:21Z
body: A strange behavior with the modals https://www.loom.com/share/568837aab3494faea12678e12eed0379
author_association: CONTRIBUTOR
user: login: britneywwc
created_at: 2025-04-10T10:38:22Z
body: > A strange behavior with the modals https://www.loom.com/share/568837aab3494faea12678e12eed0379

I think this bug is related to the form generator, created a ticket to track it [here](https://warthogs.atlassian.net/browse/WD-21391)


author_association: CONTRIBUTOR
user: login: kim-isaac
created_at: 2025-04-10T10:42:53Z
body: Thanks @britneywwc ! all looks great
author_association: NONE