ManageIQ / manageiq-pods

ManageIQ on Kubernetes and OpenShift
Apache License 2.0
50 stars 100 forks source link

Move RPM copying into a separate image #1065

Closed Fryguy closed 5 months ago

Fryguy commented 6 months ago

This allows the RUN command that need then to mount that image, without actually including the RPM artifacts in the final image itself.

This PR introduces a new image, manageiq-rpms, into which copied RPMs will go. Later stages can reuse this image when they need to install RPMs. This avoids having a layer with the COPY'd RPMs and then another layer with their contents installed. In my estimation this will knock out around 400MB of wasted image space.

Fryguy commented 5 months ago

@bdunne This is ready to go.

miq-bot commented 5 months ago

Checked commits https://github.com/Fryguy/manageiq-pods/compare/3b432ebca8c1d7b4282db44ef19dd0492e886577~...6c57b61e3434f2533fab0387a4571e6fb3105b41 with ruby 2.7.8, rubocop 1.56.3, haml-lint 0.51.0, and yamllint 0 files checked, 0 offenses detected Everything looks fine. :cake:

Fryguy commented 5 months ago

@Fryguy A conflict occurred during the backport of this pull request to radjabov.

If this pull request is based on another pull request that has not been marked for backport, add the appropriate labels to the other pull request. Otherwise, please create a new pull request direct to the radjabov branch in order to resolve this.

Conflict details:

diff --cc images/manageiq-base/Dockerfile
index c761e7e,c01b5b5..0000000
--- a/images/manageiq-base/Dockerfile
+++ b/images/manageiq-base/Dockerfile
@@@ -44,9 -52,9 +52,15 @@@ RUN --mount=type=bind,from=rpms,source=
      dnf config-manager --enable crb && \
      dnf -y install \
        https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm \
++<<<<<<< HEAD
 +      https://rpm.manageiq.org/release/18-radjabov/el9/noarch/manageiq-release-18.0-1.el9.noarch.rpm && \
 +    if [[ "$RELEASE_BUILD" != "true" ]]; then dnf config-manager --enable manageiq-18-radjabov-nightly; fi && \
 +    if [[ "$LOCAL_RPM" = "true" ]]; then /create_local_yum_repo.sh; fi && \
++=======
+       https://rpm.manageiq.org/release/19-spassky/el9/noarch/manageiq-release-19.0-1.el9.noarch.rpm && \
+     if [[ "$RELEASE_BUILD" != "true" ]]; then dnf config-manager --enable manageiq-19-spassky-nightly; fi && \
+     if [[ -n "$(ls /tmp/rpms)" ]]; then /usr/local/bin/prepare_local_yum_repo.sh; fi && \
++>>>>>>> b0c9ed3 (Merge pull request #1065 from Fryguy/ephemeral_rpms)
      dnf -y module enable ruby:3.1 && \
      dnf -y install \
        httpd \
Fryguy commented 5 months ago

Backported to radjabov in db460229b81bba46c5cb4d8e54ae2e73844cca42

commit db460229b81bba46c5cb4d8e54ae2e73844cca42 (HEAD -> radjabov, upstream/radjabov)
Author: Brandon Dunne <brandondunne@hotmail.com>
Date:   Thu Mar 14 14:06:02 2024 -0400

    Merge pull request #1065 from Fryguy/ephemeral_rpms

    Move RPM copying into a separate image

    (cherry picked from commit b0c9ed3073d070dc7ecb4ee2d7ddbce2fef35e1f)