@@ -106,73 +106,76 @@ RUN true && \
106106 usermod -aG root,wheel iofog-agent && \
107107 true
108108
109+ # Intermediate stage to collect all ubi-dep files
110+ FROM registry.access.redhat.com/ubi9/ubi-minimal:latest AS ubi-dep-staging
111+ COPY --from=ubi-dep /usr/share/zoneinfo /staging/usr/share/zoneinfo
112+ COPY --from=ubi-dep /usr/bin/curl /staging/usr/bin/curl
113+ COPY --from=ubi-dep /usr/bin/grep /staging/usr/bin/grep
114+ COPY --from=ubi-dep /usr/bin/gzip /staging/usr/bin/gzip
115+ COPY --from=ubi-dep /usr/bin/pgrep /staging/usr/bin/pgrep
116+ COPY --from=ubi-dep /usr/bin/awk /staging/usr/bin/awk
117+ COPY --from=ubi-dep /etc/ssl/certs/ca-bundle.crt /staging/etc/ssl/certs/ca-bundle.crt
118+ COPY --from=ubi-dep /etc/pki/tls/certs/ca-bundle.crt /staging/etc/pki/tls/certs/ca-bundle.crt
119+ COPY --from=ubi-dep /usr/lib64/libc.so.6 /staging/usr/lib64/libc.so.6
120+ COPY --from=ubi-dep /usr/lib64/libcom_err.so.2 /staging/usr/lib64/libcom_err.so.2
121+ COPY --from=ubi-dep /usr/lib64/libcrypto.so.3 /staging/usr/lib64/libcrypto.so.3
122+ COPY --from=ubi-dep /usr/lib64/libcurl.so.4 /staging/usr/lib64/libcurl.so.4
123+ COPY --from=ubi-dep /usr/lib64/libffi.so.8 /staging/usr/lib64/libffi.so.8
124+ COPY --from=ubi-dep /usr/lib64/libgmp.so.10 /staging/usr/lib64/libgmp.so.10
125+ COPY --from=ubi-dep /usr/lib64/libgnutls.so.30 /staging/usr/lib64/libgnutls.so.30
126+ COPY --from=ubi-dep /usr/lib64/libgssapi_krb5.so.2 /staging/usr/lib64/libgssapi_krb5.so.2
127+ COPY --from=ubi-dep /usr/lib64/libpcre.so.1 /staging/usr/lib64/libpcre.so.1
128+ COPY --from=ubi-dep /usr/lib64/libhogweed.so.6 /staging/usr/lib64/libhogweed.so.6
129+ COPY --from=ubi-dep /usr/lib64/libidn2.so.0 /staging/usr/lib64/libidn2.so.0
130+ COPY --from=ubi-dep /usr/lib64/libk5crypto.so.3 /staging/usr/lib64/libk5crypto.so.3
131+ COPY --from=ubi-dep /usr/lib64/libkeyutils.so.1 /staging/usr/lib64/libkeyutils.so.1
132+ COPY --from=ubi-dep /usr/lib64/libkrb5.so.3 /staging/usr/lib64/libkrb5.so.3
133+ COPY --from=ubi-dep /usr/lib64/libkrb5support.so.0 /staging/usr/lib64/libkrb5support.so.0
134+ COPY --from=ubi-dep /usr/lib64/libnettle.so.8 /staging/usr/lib64/libnettle.so.8
135+ COPY --from=ubi-dep /usr/lib64/libnghttp2.so.14 /staging/usr/lib64/libnghttp2.so.14
136+ COPY --from=ubi-dep /usr/lib64/libp11-kit.so.0 /staging/usr/lib64/libp11-kit.so.0
137+ COPY --from=ubi-dep /usr/lib64/libresolv.so.2 /staging/usr/lib64/libresolv.so.2
138+ COPY --from=ubi-dep /usr/lib64/libssl.so.3 /staging/usr/lib64/libssl.so.3
139+ COPY --from=ubi-dep /usr/lib64/libtasn1.so.6 /staging/usr/lib64/libtasn1.so.6
140+ COPY --from=ubi-dep /usr/lib64/libunistring.so.2 /staging/usr/lib64/libunistring.so.2
141+ COPY --from=ubi-dep /usr/lib64/libz.so.1 /staging/usr/lib64/libz.so.1
142+ COPY --from=ubi-dep /usr/lib64/libzstd.so.1 /staging/usr/lib64/libzstd.so.1
143+ COPY --from=ubi-dep /usr/lib64/libm.so.6 /staging/usr/lib64/libm.so.6
144+ COPY --from=ubi-dep /usr/lib64/libmpfr.so.6 /staging/usr/lib64/libmpfr.so.6
145+ COPY --from=ubi-dep /usr/lib64/libreadline.so.8 /staging/usr/lib64/libreadline.so.8
146+ COPY --from=ubi-dep /usr/lib64/libsigsegv.so.2 /staging/usr/lib64/libsigsegv.so.2
147+ COPY --from=ubi-dep /usr/lib64/libtinfo.so.6 /staging/usr/lib64/libtinfo.so.6
148+ COPY --from=ubi-dep /usr/lib64/libprocps.so.8 /staging/usr/lib64/libprocps.so.8
149+ COPY --from=ubi-dep /usr/lib64/libsystemd.so.0 /staging/usr/lib64/libsystemd.so.0
150+ COPY --from=ubi-dep /usr/lib64/liblz4.so.1 /staging/usr/lib64/liblz4.so.1
151+ COPY --from=ubi-dep /usr/lib64/libcap.so.2 /staging/usr/lib64/libcap.so.2
152+ COPY --from=ubi-dep /usr/lib64/libgcrypt.so.20 /staging/usr/lib64/libgcrypt.so.20
153+ COPY --from=ubi-dep /usr/lib64/libgpg-error.so.0 /staging/usr/lib64/libgpg-error.so.0
154+ COPY --from=ubi-dep /usr/lib64/liblzma.so.5 /staging/usr/lib64/liblzma.so.5
155+ COPY --from=ubi-dep /etc/passwd /staging/etc/passwd
156+ COPY --from=ubi-dep /etc/group /staging/etc/group
157+ COPY --from=ubi-dep /etc/shadow /staging/etc/shadow
158+
159+ # Intermediate stage to collect all builder files
160+ FROM registry.access.redhat.com/ubi9/ubi-minimal:latest AS builder-staging
161+ COPY --from=builder packaging/iofog-agent/usr /staging/usr
162+ COPY --from=builder packaging/iofog-agent/etc/systemd/system/iofog-agent.service /staging/etc/systemd/system/iofog-agent.service
163+ COPY --from=builder packaging/iofog-agent/etc/bash_completion.d /staging/etc/bash_completion.d
164+ COPY --from=builder packaging/iofog-agent/etc/iofog-agent /staging/etc/iofog-agent
165+
109166# Final stage using UBI Micro
110167FROM registry.access.redhat.com/ubi9/ubi-micro:latest
111168
112- # Copy dependencies from the ubi-dep stage
113- COPY --from=ubi-dep /usr/share/zoneinfo /usr/share/zoneinfo
114- COPY --from=ubi-dep /usr/bin/curl /usr/bin/
115- COPY --from=ubi-dep /usr/bin/grep /usr/bin/
116- COPY --from=ubi-dep /usr/bin/gzip /usr/bin/
117- COPY --from=ubi-dep /usr/bin/pgrep /usr/bin/
118- COPY --from=ubi-dep /usr/bin/awk /usr/bin/
119- COPY --from=ubi-dep /etc/ssl/certs/ca-bundle.crt /etc/ssl/certs/
120- COPY --from=ubi-dep /etc/pki/tls/certs/ca-bundle.crt /etc/pki/tls/certs/
121-
122- # Copy required shared libraries for curl grep awk
123- COPY --from=ubi-dep /usr/lib64/libc.so.6 /usr/lib64/
124- COPY --from=ubi-dep /usr/lib64/libcom_err.so.2 /usr/lib64/
125- COPY --from=ubi-dep /usr/lib64/libcrypto.so.3 /usr/lib64/
126- COPY --from=ubi-dep /usr/lib64/libcurl.so.4 /usr/lib64/
127- COPY --from=ubi-dep /usr/lib64/libffi.so.8 /usr/lib64/
128- COPY --from=ubi-dep /usr/lib64/libgmp.so.10 /usr/lib64/
129- COPY --from=ubi-dep /usr/lib64/libgnutls.so.30 /usr/lib64/
130- COPY --from=ubi-dep /usr/lib64/libgssapi_krb5.so.2 /usr/lib64/
131- COPY --from=ubi-dep /usr/lib64/libpcre.so.1 /usr/lib64/
132- COPY --from=ubi-dep /usr/lib64/libhogweed.so.6 /usr/lib64/
133- COPY --from=ubi-dep /usr/lib64/libidn2.so.0 /usr/lib64/
134- COPY --from=ubi-dep /usr/lib64/libk5crypto.so.3 /usr/lib64/
135- COPY --from=ubi-dep /usr/lib64/libkeyutils.so.1 /usr/lib64/
136- COPY --from=ubi-dep /usr/lib64/libkrb5.so.3 /usr/lib64/
137- COPY --from=ubi-dep /usr/lib64/libkrb5support.so.0 /usr/lib64/
138- COPY --from=ubi-dep /usr/lib64/libnettle.so.8 /usr/lib64/
139- COPY --from=ubi-dep /usr/lib64/libnghttp2.so.14 /usr/lib64/
140- COPY --from=ubi-dep /usr/lib64/libp11-kit.so.0 /usr/lib64/
141- COPY --from=ubi-dep /usr/lib64/libresolv.so.2 /usr/lib64/
142- COPY --from=ubi-dep /usr/lib64/libssl.so.3 /usr/lib64/
143- COPY --from=ubi-dep /usr/lib64/libtasn1.so.6 /usr/lib64/
144- COPY --from=ubi-dep /usr/lib64/libunistring.so.2 /usr/lib64/
145- COPY --from=ubi-dep /usr/lib64/libz.so.1 /usr/lib64/
146- COPY --from=ubi-dep /usr/lib64/libzstd.so.1 /usr/lib64/
147- COPY --from=ubi-dep /usr/lib64/libm.so.6 /usr/lib64/
148- COPY --from=ubi-dep /usr/lib64/libmpfr.so.6 /usr/lib64/
149- COPY --from=ubi-dep /usr/lib64/libreadline.so.8 /usr/lib64/
150- COPY --from=ubi-dep /usr/lib64/libsigsegv.so.2 /usr/lib64/
151- COPY --from=ubi-dep /usr/lib64/libtinfo.so.6 /usr/lib64/
152- COPY --from=ubi-dep /usr/lib64/libprocps.so.8 /usr/lib64/
153- COPY --from=ubi-dep /usr/lib64/libsystemd.so.0 /usr/lib64/
154- COPY --from=ubi-dep /usr/lib64/liblz4.so.1 /usr/lib64/
155- COPY --from=ubi-dep /usr/lib64/libcap.so.2 /usr/lib64/
156- COPY --from=ubi-dep /usr/lib64/libgcrypt.so.20 /usr/lib64/
157- COPY --from=ubi-dep /usr/lib64/libgpg-error.so.0 /usr/lib64/
158- COPY --from=ubi-dep /usr/lib64/liblzma.so.5 /usr/lib64/
159- # COPY --from=ubi-dep /usr/lib64/libblkid.so.1 /usr/lib64/
160-
161-
162- # Copy the iofog-agent user and related configurations
163- COPY --from=ubi-dep /etc/passwd /etc/passwd
164- COPY --from=ubi-dep /etc/group /etc/group
165- COPY --from=ubi-dep /etc/shadow /etc/shadow
169+ # Copy all dependencies from the staging stage in a single layer
170+ COPY --from=ubi-dep-staging /staging/ /
166171
167172
168173ENV JAVA_HOME=/opt/java/openjdk
169174ENV PATH="${JAVA_HOME}/bin:${PATH}"
170175COPY --from=jre-build /javaruntime $JAVA_HOME
171176
172- COPY --from=builder packaging/iofog-agent/usr ./usr
173- COPY --from=builder packaging/iofog-agent/etc/systemd/system/iofog-agent.service /etc/systemd/system/iofog-agent.service
174- COPY --from=builder packaging/iofog-agent/etc/bash_completion.d /etc/bash_completion.d/
175- COPY --from=builder packaging/iofog-agent/etc/iofog-agent /etc/iofog-agent/
177+ # Copy all files from builder staging stage in a single layer
178+ COPY --from=builder-staging /staging/ /
176179
177180RUN true && \
178181 mv /etc/iofog-agent/config_new.xml /etc/iofog-agent/config.xml && \
0 commit comments