This is an automated email from the ASF dual-hosted git repository.

bneradt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/trafficserver-ci.git


The following commit(s) were added to refs/heads/main by this push:
     new e39791c  split fedora:42 in to a build and deploy stage (#379)
e39791c is described below

commit e39791c48952013f6a208d11d4dfb4e6595085a3
Author: Brian Neradt <brian.ner...@gmail.com>
AuthorDate: Tue Jul 15 16:01:36 2025 -0400

    split fedora:42 in to a build and deploy stage (#379)
    
    By making a separate build stage that builds ssl tools, this reduces the
    image size from 4.3 GB to 3.2 GB.
---
 docker/fedora42/Dockerfile | 86 +++++++++++++++++++++++++++++++---------------
 1 file changed, 59 insertions(+), 27 deletions(-)

diff --git a/docker/fedora42/Dockerfile b/docker/fedora42/Dockerfile
index 70c3605..6fa382c 100644
--- a/docker/fedora42/Dockerfile
+++ b/docker/fedora42/Dockerfile
@@ -1,4 +1,4 @@
-FROM fedora:42
+FROM fedora:42 AS build
 
 
#-------------------------------------------------------------------------------
 # Install the various system packages we use.
@@ -32,11 +32,6 @@ RUN <<EOF
     perl-ExtUtils-MakeMaker perl-Digest-SHA perl-URI perl-IPC-Cmd 
perl-Pod-Html \
     curl tcl-devel java cjose-devel protobuf-devel
 
-  # autest stuff
-  dnf -y install \
-    bpftrace python3 httpd-tools procps-ng nmap-ncat python3-pip \
-    python3-gunicorn python3-requests python3-devel python3-psutil telnet
-
   # Needed to install openssl-quic
   dnf -y install libev-devel jemalloc-devel libxml2-devel \
     c-ares-devel libevent-devel cjose-devel jansson-devel zlib-devel \
@@ -45,9 +40,6 @@ RUN <<EOF
   # build_h3_tools will install its own version of golang.
   dnf remove -y golang
 
-  # lcov is used for code coverage.
-  dnf install -y lcov
-
   # abi tool dependencies.
   dnf install -y ctags elfutils-libelf-devel wdiff rfcdiff
 
@@ -70,8 +62,6 @@ RUN <<EOF
 EOF
 ARG PATH=/opt/bin:$PATH
 
-RUN pip3 install pipenv httpbin
-
 
#-------------------------------------------------------------------------------
 # Install the HTTP/3 build tools, including openssl-quic.
 
#-------------------------------------------------------------------------------
@@ -205,6 +195,61 @@ RUN <<EOF
   rm -rf ${build_dir}
 EOF
 
+# Install abi checking tools.
+RUN <<EOF
+  set -e
+  mkdir -p /root/src/abi
+  cd /root/src/abi
+  git clone https://github.com/lvc/installer.git
+  cd installer
+  for i in abi-dumper abi-tracker abi-compliance-checker vtable-dumper 
abi-monitor
+  do
+    make install prefix=/opt target=${i}
+  done
+  cd /root
+  rm -rf src/abi
+EOF
+
+FROM fedora:42
+
+RUN <<EOF
+  set -e
+
+  dnf repolist
+  dnf -y update
+
+  # Build tools.
+  dnf -y install \
+    ccache make pkgconfig bison flex gcc-c++ clang \
+    autoconf automake libtool \
+    cmake ninja-build
+
+  # Various other tools
+  dnf -y install \
+    sudo git rpm-build distcc-server file wget openssl hwloc \
+    fmt fmt-devel pcre2-devel
+
+  # Devel packages that ATS needs
+  dnf -y install \
+    openssl-devel openssl-devel-engine expat-devel pcre-devel libcap-devel 
hwloc-devel libunwind-devel \
+    xz-devel libcurl-devel ncurses-devel jemalloc-devel GeoIP-devel 
luajit-devel brotli-devel \
+    ImageMagick-devel ImageMagick-c++-devel hiredis-devel zlib-devel 
libmaxminddb-devel \
+    perl-ExtUtils-MakeMaker perl-Digest-SHA perl-URI perl-IPC-Cmd 
perl-Pod-Html \
+    curl tcl-devel java cjose-devel protobuf-devel
+
+  # lcov is used for code coverage.
+  dnf install -y lcov
+
+  # autest stuff
+  dnf -y install \
+    bpftrace python3 httpd-tools procps-ng nghttp2 nmap-ncat python3-pip \
+    python3-gunicorn python3-requests python3-devel python3-psutil telnet
+
+  dnf clean all
+EOF
+
+RUN pip3 install pipenv httpbin
+
 # Add the CI's test user. N.B: 1200 is the uid that our jenkins user is
 # configured with, so that has to be used. Otherwise there will be permissions
 # issues.
@@ -223,20 +268,7 @@ RUN <<EOF
   chown -R ${username} /home/${username}
 EOF
 
-# Install abi checking tools.
-RUN <<EOF
-  set -e
-  mkdir -p /root/src/abi
-  cd /root/src/abi
-  git clone https://github.com/lvc/installer.git
-  cd installer
-  for i in abi-dumper abi-tracker abi-compliance-checker vtable-dumper 
abi-monitor
-  do
-    make install prefix=/opt target=${i}
-  done
-  cd /root
-  rm -rf src/abi
-EOF
+COPY --from=build /opt /opt
+
+ENV PATH="$PATH:/opt/bin"
 
-# Keep this at the end to ensure the dnf cache is cleared out.
-RUN dnf clean all

Reply via email to