This is an automated email from the ASF dual-hosted git repository.
cmcfarlen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/master by this push:
new 666e343bc6 Update dockerfile (#13153)
666e343bc6 is described below
commit 666e343bc6172ad07397ba4dd711fa2aa961d5e6
Author: Chris McFarlen <[email protected]>
AuthorDate: Tue May 12 13:17:13 2026 -0500
Update dockerfile (#13153)
* Update dockerfile
* add additional stage for followup builds.
---
contrib/docker/ubuntu/noble/Dockerfile | 31 +++++++++++++++++++++----------
1 file changed, 21 insertions(+), 10 deletions(-)
diff --git a/contrib/docker/ubuntu/noble/Dockerfile
b/contrib/docker/ubuntu/noble/Dockerfile
index 1270a71d6a..d5c90227df 100644
--- a/contrib/docker/ubuntu/noble/Dockerfile
+++ b/contrib/docker/ubuntu/noble/Dockerfile
@@ -14,11 +14,11 @@
# the License.
#
#######################
-FROM ubuntu:noble AS build
+FROM ubuntu:noble AS build-setup
ARG LLVM_VERSION=18
ARG BASE=/opt
-ARG ATS_VERSION=10.1.0
+ARG GO_VERSION=1.26.2
RUN apt update \
&& apt upgrade --yes \
@@ -39,6 +39,7 @@ RUN apt update \
libtool \
make \
pkg-config \
+ libpsl-dev \
# ATS deps
libxml2-dev \
libjemalloc-dev \
@@ -61,12 +62,18 @@ RUN apt update \
libssl-dev \
&& apt clean --yes
+# Set up cc (and optionally c++) to use clang-18 via alternatives
+RUN update-alternatives --install /usr/bin/cc cc
/usr/bin/clang-${LLVM_VERSION} 100 \
+ && update-alternatives --install /usr/bin/c++ c++
/usr/bin/clang++-${LLVM_VERSION} 100 \
+ && update-alternatives --install /usr/bin/clang clang
/usr/bin/clang-${LLVM_VERSION} 100 \
+ && update-alternatives --install /usr/bin/clang++ clang++
/usr/bin/clang++-${LLVM_VERSION} 100
+
RUN rustup default stable
RUN mkdir -p ${BASE} && chmod a+rX ${BASE}
RUN if [ `uname -m` = "arm64" -o `uname -m` = "aarch64" ]; then echo "arm64" >
/arch; else echo "amd64" > /arch; fi \
- && wget -qO- https://go.dev/dl/go1.21.6.linux-$(cat /arch).tar.gz | tar -C
${BASE} -xzf -
+ && wget -qO- https://go.dev/dl/go${GO_VERSION}.linux-$(cat /arch).tar.gz |
tar -C ${BASE} -xzf -
ENV CC=clang-${LLVM_VERSION}
ENV CXX=clang++-${LLVM_VERSION}
@@ -82,7 +89,6 @@ RUN git clone https://boringssl.googlesource.com/boringssl \
-DCMAKE_INSTALL_PREFIX=${BASE}/boringssl \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS='-Wno-error=ignored-attributes -UBORINGSSL_HAVE_LIBUNWIND'
\
- -DCMAKE_C_FLAGS=${BSSL_C_FLAGS} \
-DBUILD_SHARED_LIBS=1 \
&& cmake \
-B build-static \
@@ -102,7 +108,7 @@ RUN git clone https://boringssl.googlesource.com/boringssl \
ENV QUICHE_BASE="${BASE}/quiche"
-RUN git clone -b 0.22.0 --depth 1 https://github.com/cloudflare/quiche.git \
+RUN git clone -b 0.28.0 --depth 1 https://github.com/cloudflare/quiche.git \
&& cd quiche \
&& QUICHE_BSSL_PATH=${BASE}/boringssl/lib QUICHE_BSSL_LINK_KIND=dylib \
cargo build -j$(nproc) --package quiche --release --features
ffi,pkg-config-meta,qlog \
@@ -110,7 +116,7 @@ RUN git clone -b 0.22.0 --depth 1
https://github.com/cloudflare/quiche.git \
&& mkdir -p ${QUICHE_BASE}/include \
&& cp target/release/libquiche.a ${QUICHE_BASE}/lib/ \
&& cp target/release/libquiche.so ${QUICHE_BASE}/lib/ \
- && ln -s ${QUICHE_BASE}/lib/libquiche.so ${QUICHE_BASE}/lib/libquiche.so.0 \
+ && ln -sf ${QUICHE_BASE}/lib/libquiche.so ${QUICHE_BASE}/lib/libquiche.so.0 \
&& cp quiche/include/quiche.h ${QUICHE_BASE}/include/ \
&& cp target/release/quiche.pc ${QUICHE_BASE}/lib/pkgconfig \
&& cd .. \
@@ -121,12 +127,13 @@ ENV CFLAGS="-O3"
ENV CXXFLAGS="-O3"
ENV
PKG_CONFIG_PATH="${BASE}/lib/pkgconfig:${BASE}/boringssl/lib/pkgconfig:${BASE}/quiche/lib/pkgconfig"
-RUN git clone --depth 1 -b v1.2.0 https://github.com/ngtcp2/nghttp3.git \
+RUN git clone --depth 1 -b v1.15.0 https://github.com/ngtcp2/nghttp3.git \
&& cd nghttp3 \
&& git submodule update --init \
&& autoreconf -if \
&& ./configure \
--prefix=${BASE} \
+ PKG_CONFIG_PATH=${BASE}/lib/pkgconfig:${BASE}/boringssl/lib/pkgconfig \
CFLAGS="${CFLAGS}" \
CXXFLAGS="${CXXFLAGS}" \
LDFLAGS="${LDFLAGS}" \
@@ -137,7 +144,7 @@ RUN git clone --depth 1 -b v1.2.0
https://github.com/ngtcp2/nghttp3.git \
&& rm -rf nghttp3
-RUN git clone --depth 1 -b v1.4.0 https://github.com/ngtcp2/ngtcp2.git \
+RUN git clone --depth 1 -b v1.22.1 https://github.com/ngtcp2/ngtcp2.git \
&& cd ngtcp2 \
&& autoreconf -if \
&& ./configure \
@@ -154,7 +161,7 @@ RUN git clone --depth 1 -b v1.4.0
https://github.com/ngtcp2/ngtcp2.git \
&& cd .. \
&& rm -rf ngtcp2
-RUN git clone --depth 1 -b v1.60.0 https://github.com/tatsuhiro-t/nghttp2.git \
+RUN git clone --depth 1 -b v1.69.0 https://github.com/tatsuhiro-t/nghttp2.git \
&& cd nghttp2 \
&& git submodule update --init \
&& autoreconf -if \
@@ -172,7 +179,7 @@ RUN git clone --depth 1 -b v1.60.0
https://github.com/tatsuhiro-t/nghttp2.git \
&& cd .. \
&& rm -rf nghttp2
-RUN git clone --depth 1 -b curl-8_7_1 https://github.com/curl/curl.git \
+RUN git clone --depth 1 -b curl-8_20_0 https://github.com/curl/curl.git \
&& cd curl \
&& autoreconf -fi \
&& ./configure \
@@ -189,6 +196,10 @@ RUN git clone --depth 1 -b curl-8_7_1
https://github.com/curl/curl.git \
&& cd .. \
&& rm -rf curl
+FROM build-setup as build
+
+ARG ATS_VERSION=10.1.0
+
RUN git clone --depth 1 -b ${ATS_VERSION}
https://github.com/apache/trafficserver.git \
&& cmake \
-Strafficserver \