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