12c593315Sopenharmony_ciFROM debian:12 as build 22c593315Sopenharmony_ci 32c593315Sopenharmony_ciRUN apt-get update && \ 42c593315Sopenharmony_ci apt-get install -y --no-install-recommends \ 52c593315Sopenharmony_ci git clang make binutils autoconf automake autotools-dev libtool \ 62c593315Sopenharmony_ci pkg-config \ 72c593315Sopenharmony_ci zlib1g-dev libev-dev libjemalloc-dev ruby-dev libc-ares-dev bison \ 82c593315Sopenharmony_ci libelf-dev 92c593315Sopenharmony_ci 102c593315Sopenharmony_ciRUN git clone --depth 1 -b OpenSSL_1_1_1w+quic https://github.com/quictls/openssl && \ 112c593315Sopenharmony_ci cd openssl && \ 122c593315Sopenharmony_ci ./config --openssldir=/etc/ssl && \ 132c593315Sopenharmony_ci make -j$(nproc) && \ 142c593315Sopenharmony_ci make install_sw && \ 152c593315Sopenharmony_ci cd .. && \ 162c593315Sopenharmony_ci rm -rf openssl 172c593315Sopenharmony_ci 182c593315Sopenharmony_ciRUN git clone --depth 1 -b v1.0.0 https://github.com/ngtcp2/nghttp3 && \ 192c593315Sopenharmony_ci cd nghttp3 && \ 202c593315Sopenharmony_ci autoreconf -i && \ 212c593315Sopenharmony_ci ./configure --enable-lib-only && \ 222c593315Sopenharmony_ci make -j$(nproc) && \ 232c593315Sopenharmony_ci make install-strip && \ 242c593315Sopenharmony_ci cd .. && \ 252c593315Sopenharmony_ci rm -rf nghttp3 262c593315Sopenharmony_ci 272c593315Sopenharmony_ciRUN git clone --depth 1 -b v1.0.1 https://github.com/ngtcp2/ngtcp2 && \ 282c593315Sopenharmony_ci cd ngtcp2 && \ 292c593315Sopenharmony_ci autoreconf -i && \ 302c593315Sopenharmony_ci ./configure --enable-lib-only \ 312c593315Sopenharmony_ci LIBTOOL_LDFLAGS="-static-libtool-libs" \ 322c593315Sopenharmony_ci OPENSSL_LIBS="-l:libssl.a -l:libcrypto.a -ldl -lpthread" \ 332c593315Sopenharmony_ci PKG_CONFIG_PATH="/usr/local/lib64/pkgconfig" && \ 342c593315Sopenharmony_ci make -j$(nproc) && \ 352c593315Sopenharmony_ci make install-strip && \ 362c593315Sopenharmony_ci cd .. && \ 372c593315Sopenharmony_ci rm -rf ngtcp2 382c593315Sopenharmony_ci 392c593315Sopenharmony_ciRUN git clone --depth 1 -b v1.2.2 https://github.com/libbpf/libbpf && \ 402c593315Sopenharmony_ci cd libbpf && \ 412c593315Sopenharmony_ci PREFIX=/usr/local make -C src install && \ 422c593315Sopenharmony_ci cd .. && \ 432c593315Sopenharmony_ci rm -rf libbpf 442c593315Sopenharmony_ci 452c593315Sopenharmony_ciRUN git clone --depth 1 https://github.com/nghttp2/nghttp2.git && \ 462c593315Sopenharmony_ci cd nghttp2 && \ 472c593315Sopenharmony_ci git submodule update --init && \ 482c593315Sopenharmony_ci autoreconf -i && \ 492c593315Sopenharmony_ci ./configure --disable-examples --disable-hpack-tools \ 502c593315Sopenharmony_ci --with-mruby --with-neverbleed \ 512c593315Sopenharmony_ci --enable-http3 --with-libbpf \ 522c593315Sopenharmony_ci CC=clang CXX=clang++ \ 532c593315Sopenharmony_ci LIBTOOL_LDFLAGS="-static-libtool-libs" \ 542c593315Sopenharmony_ci OPENSSL_LIBS="-l:libssl.a -l:libcrypto.a -ldl -pthread" \ 552c593315Sopenharmony_ci LIBEV_LIBS="-l:libev.a" \ 562c593315Sopenharmony_ci JEMALLOC_LIBS="-l:libjemalloc.a" \ 572c593315Sopenharmony_ci LIBCARES_LIBS="-l:libcares.a" \ 582c593315Sopenharmony_ci ZLIB_LIBS="-l:libz.a" \ 592c593315Sopenharmony_ci LIBBPF_LIBS="-L/usr/local/lib64 -l:libbpf.a -l:libelf.a" \ 602c593315Sopenharmony_ci LDFLAGS="-static-libgcc -static-libstdc++" \ 612c593315Sopenharmony_ci PKG_CONFIG_PATH="/usr/local/lib64/pkgconfig" && \ 622c593315Sopenharmony_ci make -j$(nproc) install-strip && \ 632c593315Sopenharmony_ci cd .. && \ 642c593315Sopenharmony_ci rm -rf nghttp2 652c593315Sopenharmony_ci 662c593315Sopenharmony_ciFROM gcr.io/distroless/base-debian12 672c593315Sopenharmony_ci 682c593315Sopenharmony_ciCOPY --from=build \ 692c593315Sopenharmony_ci /usr/local/share/nghttp2/ \ 702c593315Sopenharmony_ci /usr/local/share/nghttp2/ 712c593315Sopenharmony_ciCOPY --from=build \ 722c593315Sopenharmony_ci /usr/local/bin/h2load \ 732c593315Sopenharmony_ci /usr/local/bin/nghttpx \ 742c593315Sopenharmony_ci /usr/local/bin/nghttp \ 752c593315Sopenharmony_ci /usr/local/bin/nghttpd \ 762c593315Sopenharmony_ci /usr/local/bin/ 772c593315Sopenharmony_ciCOPY --from=build /usr/local/lib/nghttp2/reuseport_kern.o \ 782c593315Sopenharmony_ci /usr/local/lib/nghttp2/ 79