Fetch rocky9 GitHub sources via curl through wangguofang.net proxy

Switch rocky9's GitHub-hosted dependency downloads from `git clone` to
curl-fetched release tarballs via the wangguofang.net proxy, matching
the approach already used in alpine3.24/Dockerfile. log4cplus keeps
git clone since it needs a submodule checkout.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WE1kAAo7iusPxLSuu88HaU
This commit is contained in:
GuofangandClaude Sonnet 5 committed 2026-09-17 14:08:08 +08:00
1 parent e685a177d5
commit a425237759
1 file changed
+190 -38
+190 -38
View File
@@ -77,7 +77,11 @@ RUN curl --fail --location --output boost.tar.bz2 \
&& cd .. \ && cd .. \
&& rm -rf src && rm -rf src
RUN git clone --branch=openssl-3.0.15 --depth=1 https://github.com/openssl/openssl.git src \ RUN curl --fail --location --output openssl.tar.gz \
https://wangguofang.net/github.com/openssl/openssl/archive/openssl-3.0.15.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=openssl.tar.gz --directory=src --strip-components=1 \
&& rm openssl.tar.gz \
&& cd src \ && cd src \
&& ./Configure --prefix=/usr/local --libdir=lib no-shared no-tests -fPIC \ && ./Configure --prefix=/usr/local --libdir=lib no-shared no-tests -fPIC \
&& make --jobs="$(nproc)" \ && make --jobs="$(nproc)" \
@@ -85,7 +89,11 @@ RUN git clone --branch=openssl-3.0.15 --depth=1 https://github.com/openssl/opens
&& cd .. \ && cd .. \
&& rm -rf src && rm -rf src
RUN git clone --branch=release-2.1.12-stable --depth=1 https://github.com/libevent/libevent.git src \ RUN curl --fail --location --output libevent.tar.gz \
https://wangguofang.net/github.com/libevent/libevent/archive/release-2.1.12-stable.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=libevent.tar.gz --directory=src --strip-components=1 \
&& rm libevent.tar.gz \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DEVENT__DISABLE_BENCHMARK=ON \ -DEVENT__DISABLE_BENCHMARK=ON \
@@ -96,7 +104,11 @@ RUN git clone --branch=release-2.1.12-stable --depth=1 https://github.com/libeve
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=v1.5.7 --depth=1 https://github.com/facebook/zstd.git src \ RUN curl --fail --location --output zstd.tar.gz \
https://wangguofang.net/github.com/facebook/zstd/archive/v1.5.7.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=zstd.tar.gz --directory=src --strip-components=1 \
&& rm zstd.tar.gz \
&& cmake -G Ninja -S src/build/cmake -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src/build/cmake -B build -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DZSTD_BUILD_CONTRIB=OFF \ -DZSTD_BUILD_CONTRIB=OFF \
@@ -107,7 +119,11 @@ RUN git clone --branch=v1.5.7 --depth=1 https://github.com/facebook/zstd.git src
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=v1.3.1 --depth=1 https://github.com/madler/zlib.git src \ RUN curl --fail --location --output zlib.tar.gz \
https://wangguofang.net/github.com/madler/zlib/archive/v1.3.1.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=zlib.tar.gz --directory=src --strip-components=1 \
&& rm zlib.tar.gz \
&& cd src \ && cd src \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --static \ && CFLAGS=-fPIC ./configure --prefix=/usr/local --static \
&& make --jobs="$(nproc)" \ && make --jobs="$(nproc)" \
@@ -115,7 +131,11 @@ RUN git clone --branch=v1.3.1 --depth=1 https://github.com/madler/zlib.git src \
&& cd .. \ && cd .. \
&& rm -rf src && rm -rf src
RUN git clone --branch=v3.21.12 --depth=1 https://github.com/protocolbuffers/protobuf.git src \ RUN curl --fail --location --output protobuf.tar.gz \
https://wangguofang.net/github.com/protocolbuffers/protobuf/archive/v3.21.12.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=protobuf.tar.gz --directory=src --strip-components=1 \
&& rm protobuf.tar.gz \
&& cmake -G Ninja -S src -B build -Dprotobuf_BUILD_TESTS=OFF \ && cmake -G Ninja -S src -B build -Dprotobuf_BUILD_TESTS=OFF \
-Dprotobuf_BUILD_SHARED_LIBS=OFF \ -Dprotobuf_BUILD_SHARED_LIBS=OFF \
-Dprotobuf_WITH_ZLIB=ON \ -Dprotobuf_WITH_ZLIB=ON \
@@ -135,7 +155,11 @@ RUN git clone --branch=REL_2_0_5 --depth=1 https://github.com/log4cplus/log4cplu
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=12.2.0 --depth=1 https://github.com/fmtlib/fmt.git src \ RUN curl --fail --location --output fmt.tar.gz \
https://wangguofang.net/github.com/fmtlib/fmt/archive/12.2.0.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=fmt.tar.gz --directory=src --strip-components=1 \
&& rm fmt.tar.gz \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \ -DBUILD_SHARED_LIBS=OFF \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
@@ -144,7 +168,11 @@ RUN git clone --branch=12.2.0 --depth=1 https://github.com/fmtlib/fmt.git src \
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=v1.17.0 --depth=1 https://github.com/gabime/spdlog.git src \ RUN curl --fail --location --output spdlog.tar.gz \
https://wangguofang.net/github.com/gabime/spdlog/archive/v1.17.0.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=spdlog.tar.gz --directory=src --strip-components=1 \
&& rm spdlog.tar.gz \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \ -DBUILD_SHARED_LIBS=OFF \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
@@ -155,7 +183,11 @@ RUN git clone --branch=v1.17.0 --depth=1 https://github.com/gabime/spdlog.git sr
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=v0.9.8 --depth=1 https://github.com/Neargye/magic_enum.git src \ RUN curl --fail --location --output magic_enum.tar.gz \
https://wangguofang.net/github.com/Neargye/magic_enum/archive/v0.9.8.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=magic_enum.tar.gz --directory=src --strip-components=1 \
&& rm magic_enum.tar.gz \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DMAGIC_ENUM_OPT_BUILD_EXAMPLES=OFF \ -DMAGIC_ENUM_OPT_BUILD_EXAMPLES=OFF \
-DMAGIC_ENUM_OPT_BUILD_TESTS=OFF \ -DMAGIC_ENUM_OPT_BUILD_TESTS=OFF \
@@ -163,7 +195,11 @@ RUN git clone --branch=v0.9.8 --depth=1 https://github.com/Neargye/magic_enum.gi
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=v8.2.10 --depth=1 https://github.com/fastfloat/fast_float.git src \ RUN curl --fail --location --output fast_float.tar.gz \
https://wangguofang.net/github.com/fastfloat/fast_float/archive/v8.2.10.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=fast_float.tar.gz --directory=src --strip-components=1 \
&& rm fast_float.tar.gz \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DFASTFLOAT_BENCHMARKS=OFF \ -DFASTFLOAT_BENCHMARKS=OFF \
-DFASTFLOAT_INSTALL=ON \ -DFASTFLOAT_INSTALL=ON \
@@ -171,12 +207,20 @@ RUN git clone --branch=v8.2.10 --depth=1 https://github.com/fastfloat/fast_float
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=v0.7.0 --depth=1 https://github.com/Tessil/sparse-map.git src \ RUN curl --fail --location --output sparse-map.tar.gz \
https://wangguofang.net/github.com/Tessil/sparse-map/archive/v0.7.0.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=sparse-map.tar.gz --directory=src --strip-components=1 \
&& rm sparse-map.tar.gz \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=v2.3.1 --depth=1 https://github.com/gflags/gflags.git src \ RUN curl --fail --location --output gflags.tar.gz \
https://wangguofang.net/github.com/gflags/gflags/archive/v2.3.1.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=gflags.tar.gz --directory=src --strip-components=1 \
&& rm gflags.tar.gz \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \ -DBUILD_SHARED_LIBS=OFF \
-DBUILD_STATIC_LIBS=ON \ -DBUILD_STATIC_LIBS=ON \
@@ -189,7 +233,11 @@ RUN git clone --branch=v2.3.1 --depth=1 https://github.com/gflags/gflags.git src
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=v0.7.1 --depth=1 https://github.com/google/glog.git src \ RUN curl --fail --location --output glog.tar.gz \
https://wangguofang.net/github.com/google/glog/archive/v0.7.1.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=glog.tar.gz --directory=src --strip-components=1 \
&& rm glog.tar.gz \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \ -DBUILD_SHARED_LIBS=OFF \
-DBUILD_TESTING=OFF \ -DBUILD_TESTING=OFF \
@@ -201,7 +249,11 @@ RUN git clone --branch=v0.7.1 --depth=1 https://github.com/google/glog.git src \
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=liburing-2.15 --depth=1 https://github.com/axboe/liburing.git src \ RUN curl --fail --location --output liburing.tar.gz \
https://wangguofang.net/github.com/axboe/liburing/archive/liburing-2.15.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=liburing.tar.gz --directory=src --strip-components=1 \
&& rm liburing.tar.gz \
&& cd src \ && cd src \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local \ && CFLAGS=-fPIC ./configure --prefix=/usr/local \
&& make --jobs="$(nproc)" ENABLE_SHARED=0 library \ && make --jobs="$(nproc)" ENABLE_SHARED=0 library \
@@ -220,7 +272,11 @@ RUN curl --fail --location --output libaio.tar.gz \
&& make --directory=src ENABLE_SHARED=0 prefix=/usr/local install \ && make --directory=src ENABLE_SHARED=0 prefix=/usr/local install \
&& rm -rf src && rm -rf src
RUN git clone --branch=v2.3.2 --depth=1 https://github.com/davea42/libdwarf-code.git src \ RUN curl --fail --location --output libdwarf-code.tar.gz \
https://wangguofang.net/github.com/davea42/libdwarf-code/archive/v2.3.2.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=libdwarf-code.tar.gz --directory=src --strip-components=1 \
&& rm libdwarf-code.tar.gz \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_DWARFDUMP=OFF \ -DBUILD_DWARFDUMP=OFF \
-DBUILD_DWARFEXAMPLE=OFF \ -DBUILD_DWARFEXAMPLE=OFF \
@@ -233,7 +289,11 @@ RUN git clone --branch=v2.3.2 --depth=1 https://github.com/davea42/libdwarf-code
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=1.0.20-RELEASE --depth=1 https://github.com/jedisct1/libsodium.git src \ RUN curl --fail --location --output libsodium.tar.gz \
https://wangguofang.net/github.com/jedisct1/libsodium/archive/1.0.20-RELEASE.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=libsodium.tar.gz --directory=src --strip-components=1 \
&& rm libsodium.tar.gz \
&& cd src \ && cd src \
&& ./autogen.sh \ && ./autogen.sh \
&& ./configure --prefix=/usr/local --disable-shared --enable-static --with-pic \ && ./configure --prefix=/usr/local --disable-shared --enable-static --with-pic \
@@ -242,7 +302,11 @@ RUN git clone --branch=1.0.20-RELEASE --depth=1 https://github.com/jedisct1/libs
&& cd .. \ && cd .. \
&& rm -rf src && rm -rf src
RUN git clone --branch=v0.8.3 --depth=1 https://github.com/Cyan4973/xxHash.git src \ RUN curl --fail --location --output xxHash.tar.gz \
https://wangguofang.net/github.com/Cyan4973/xxHash/archive/v0.8.3.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=xxHash.tar.gz --directory=src --strip-components=1 \
&& rm xxHash.tar.gz \
&& cmake -G Ninja -S src/cmake_unofficial -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src/cmake_unofficial -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \ -DBUILD_SHARED_LIBS=OFF \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
@@ -250,7 +314,11 @@ RUN git clone --branch=v0.8.3 --depth=1 https://github.com/Cyan4973/xxHash.git s
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=v1.17.0 --depth=1 https://github.com/google/googletest.git src \ RUN curl --fail --location --output googletest.tar.gz \
https://wangguofang.net/github.com/google/googletest/archive/v1.17.0.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=googletest.tar.gz --directory=src --strip-components=1 \
&& rm googletest.tar.gz \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_GMOCK=ON \ -DBUILD_GMOCK=ON \
-DBUILD_SHARED_LIBS=OFF \ -DBUILD_SHARED_LIBS=OFF \
@@ -261,7 +329,11 @@ RUN git clone --branch=v1.17.0 --depth=1 https://github.com/google/googletest.gi
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=v2.0.19 --depth=1 https://github.com/numactl/numactl.git src \ RUN curl --fail --location --output numactl.tar.gz \
https://wangguofang.net/github.com/numactl/numactl/archive/v2.0.19.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=numactl.tar.gz --directory=src --strip-components=1 \
&& rm numactl.tar.gz \
&& cd src \ && cd src \
&& ./autogen.sh \ && ./autogen.sh \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --disable-shared --enable-static \ && CFLAGS=-fPIC ./configure --prefix=/usr/local --disable-shared --enable-static \
@@ -270,7 +342,11 @@ RUN git clone --branch=v2.0.19 --depth=1 https://github.com/numactl/numactl.git
&& cd .. \ && cd .. \
&& rm -rf src && rm -rf src
RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebook/folly.git src \ RUN curl --fail --location --output folly.tar.gz \
https://wangguofang.net/github.com/facebook/folly/archive/v2026.08.03.00.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=folly.tar.gz --directory=src --strip-components=1 \
&& rm folly.tar.gz \
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \ && CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBOOST_LINK_STATIC=ON \ -DBOOST_LINK_STATIC=ON \
@@ -282,7 +358,11 @@ RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebook/foll
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebookincubator/fizz.git src \ RUN curl --fail --location --output fizz.tar.gz \
https://wangguofang.net/github.com/facebookincubator/fizz/archive/v2026.08.03.00.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=fizz.tar.gz --directory=src --strip-components=1 \
&& rm fizz.tar.gz \
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \ && CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
cmake -G Ninja -S src/fizz -B build -DCMAKE_BUILD_TYPE=Release \ cmake -G Ninja -S src/fizz -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_EXAMPLES=OFF \ -DBUILD_EXAMPLES=OFF \
@@ -293,7 +373,11 @@ RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebookincub
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebook/wangle.git src \ RUN curl --fail --location --output wangle.tar.gz \
https://wangguofang.net/github.com/facebook/wangle/archive/v2026.08.03.00.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=wangle.tar.gz --directory=src --strip-components=1 \
&& rm wangle.tar.gz \
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \ && CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
cmake -G Ninja -S src/wangle -B build -DCMAKE_BUILD_TYPE=Release \ cmake -G Ninja -S src/wangle -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_EXAMPLES=OFF \ -DBUILD_EXAMPLES=OFF \
@@ -303,7 +387,11 @@ RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebook/wang
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebook/mvfst.git src \ RUN curl --fail --location --output mvfst.tar.gz \
https://wangguofang.net/github.com/facebook/mvfst/archive/v2026.08.03.00.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=mvfst.tar.gz --directory=src --strip-components=1 \
&& rm mvfst.tar.gz \
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \ && CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SAMPLES=OFF \ -DBUILD_SAMPLES=OFF \
@@ -314,7 +402,11 @@ RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebook/mvfs
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebook/fbthrift.git src \ RUN curl --fail --location --output fbthrift.tar.gz \
https://wangguofang.net/github.com/facebook/fbthrift/archive/v2026.08.03.00.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=fbthrift.tar.gz --directory=src --strip-components=1 \
&& rm fbthrift.tar.gz \
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \ && CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \ -DBUILD_SHARED_LIBS=OFF \
@@ -328,7 +420,11 @@ RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebook/fbth
&& rm -rf build src && rm -rf build src
COPY cachelib-optional-interface.patch /tmp/ COPY cachelib-optional-interface.patch /tmp/
RUN git clone --branch=v2026.08.03.00 --depth=1 https://github.com/facebook/CacheLib.git src \ RUN curl --fail --location --output CacheLib.tar.gz \
https://wangguofang.net/github.com/facebook/CacheLib/archive/v2026.08.03.00.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=CacheLib.tar.gz --directory=src --strip-components=1 \
&& rm CacheLib.tar.gz \
&& git -C src apply /tmp/cachelib-optional-interface.patch \ && git -C src apply /tmp/cachelib-optional-interface.patch \
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \ && CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
cmake -G Ninja -S src/cachelib -B build -DCMAKE_BUILD_TYPE=Release \ cmake -G Ninja -S src/cachelib -B build -DCMAKE_BUILD_TYPE=Release \
@@ -361,7 +457,11 @@ RUN curl --fail --location --output util-linux.tar.xz \
&& cd .. \ && cd .. \
&& rm -rf src && rm -rf src
RUN git clone --branch=v4.3.5 --depth=1 https://github.com/zeromq/libzmq.git src \ RUN curl --fail --location --output libzmq.tar.gz \
https://wangguofang.net/github.com/zeromq/libzmq/archive/v4.3.5.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=libzmq.tar.gz --directory=src --strip-components=1 \
&& rm libzmq.tar.gz \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED=OFF \ -DBUILD_SHARED=OFF \
-DBUILD_STATIC=ON \ -DBUILD_STATIC=ON \
@@ -377,7 +477,11 @@ RUN git clone --branch=v4.3.5 --depth=1 https://github.com/zeromq/libzmq.git src
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=v4.2.1 --depth=1 https://github.com/zeromq/czmq.git src \ RUN curl --fail --location --output czmq.tar.gz \
https://wangguofang.net/github.com/zeromq/czmq/archive/v4.2.1.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=czmq.tar.gz --directory=src --strip-components=1 \
&& rm czmq.tar.gz \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCZMQ_BUILD_SHARED=OFF \ -DCZMQ_BUILD_SHARED=OFF \
@@ -392,7 +496,11 @@ RUN git clone --branch=v4.2.1 --depth=1 https://github.com/zeromq/czmq.git src \
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=1.9.8 --depth=1 https://github.com/open-source-parsers/jsoncpp.git src \ RUN curl --fail --location --output jsoncpp.tar.gz \
https://wangguofang.net/github.com/open-source-parsers/jsoncpp/archive/1.9.8.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=jsoncpp.tar.gz --directory=src --strip-components=1 \
&& rm jsoncpp.tar.gz \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_OBJECT_LIBS=OFF \ -DBUILD_OBJECT_LIBS=OFF \
-DBUILD_SHARED_LIBS=OFF \ -DBUILD_SHARED_LIBS=OFF \
@@ -404,7 +512,11 @@ RUN git clone --branch=1.9.8 --depth=1 https://github.com/open-source-parsers/js
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=v2.15.0 --depth=1 https://github.com/confluentinc/librdkafka.git src \ RUN curl --fail --location --output librdkafka.tar.gz \
https://wangguofang.net/github.com/confluentinc/librdkafka/archive/v2.15.0.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=librdkafka.tar.gz --directory=src --strip-components=1 \
&& rm librdkafka.tar.gz \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DENABLE_LZ4_EXT=OFF \ -DENABLE_LZ4_EXT=OFF \
@@ -420,7 +532,11 @@ RUN git clone --branch=v2.15.0 --depth=1 https://github.com/confluentinc/librdka
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=json-c-0.19-20260627 --depth=1 https://github.com/json-c/json-c.git src \ RUN curl --fail --location --output json-c.tar.gz \
https://wangguofang.net/github.com/json-c/json-c/archive/json-c-0.19-20260627.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=json-c.tar.gz --directory=src --strip-components=1 \
&& rm json-c.tar.gz \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_APPS=OFF \ -DBUILD_APPS=OFF \
-DBUILD_SHARED_LIBS=OFF \ -DBUILD_SHARED_LIBS=OFF \
@@ -432,7 +548,11 @@ RUN git clone --branch=json-c-0.19-20260627 --depth=1 https://github.com/json-c/
&& rm -rf build src && rm -rf build src
COPY rapidjson-generic-string-ref-assignment.patch /tmp/ COPY rapidjson-generic-string-ref-assignment.patch /tmp/
RUN git clone --branch=v1.1.0 --depth=1 https://github.com/Tencent/rapidjson.git src \ RUN curl --fail --location --output rapidjson.tar.gz \
https://wangguofang.net/github.com/Tencent/rapidjson/archive/v1.1.0.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=rapidjson.tar.gz --directory=src --strip-components=1 \
&& rm rapidjson.tar.gz \
&& git -C src apply /tmp/rapidjson-generic-string-ref-assignment.patch \ && git -C src apply /tmp/rapidjson-generic-string-ref-assignment.patch \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DRAPIDJSON_BUILD_DOC=OFF \ -DRAPIDJSON_BUILD_DOC=OFF \
@@ -441,7 +561,11 @@ RUN git clone --branch=v1.1.0 --depth=1 https://github.com/Tencent/rapidjson.git
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src /tmp/rapidjson-generic-string-ref-assignment.patch && rm -rf build src /tmp/rapidjson-generic-string-ref-assignment.patch
RUN git clone --branch=curl-8_21_0 --depth=1 https://github.com/curl/curl.git src \ RUN curl --fail --location --output curl.tar.gz \
https://wangguofang.net/github.com/curl/curl/archive/curl-8_21_0.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=curl.tar.gz --directory=src --strip-components=1 \
&& rm curl.tar.gz \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_CURL_EXE=OFF \ -DBUILD_CURL_EXE=OFF \
-DBUILD_EXAMPLES=OFF \ -DBUILD_EXAMPLES=OFF \
@@ -465,7 +589,11 @@ RUN git clone --branch=curl-8_21_0 --depth=1 https://github.com/curl/curl.git sr
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=v1.4.1 --depth=1 https://github.com/redis/hiredis.git src \ RUN curl --fail --location --output hiredis.tar.gz \
https://wangguofang.net/github.com/redis/hiredis/archive/v1.4.1.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=hiredis.tar.gz --directory=src --strip-components=1 \
&& rm hiredis.tar.gz \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \ -DBUILD_SHARED_LIBS=OFF \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
@@ -539,7 +667,11 @@ RUN curl --fail --location --output gnutls.tar.xz \
&& cd .. \ && cd .. \
&& rm -rf src && rm -rf src
RUN git clone --branch=1.13.3 --depth=1 https://github.com/maxmind/libmaxminddb.git src \ RUN curl --fail --location --output libmaxminddb.tar.gz \
https://wangguofang.net/github.com/maxmind/libmaxminddb/archive/1.13.3.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=libmaxminddb.tar.gz --directory=src --strip-components=1 \
&& rm libmaxminddb.tar.gz \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \ -DBUILD_SHARED_LIBS=OFF \
-DBUILD_TESTING=OFF \ -DBUILD_TESTING=OFF \
@@ -548,7 +680,11 @@ RUN git clone --branch=1.13.3 --depth=1 https://github.com/maxmind/libmaxminddb.
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=0.2.5 --depth=1 https://github.com/yaml/libyaml.git src \ RUN curl --fail --location --output libyaml.tar.gz \
https://wangguofang.net/github.com/yaml/libyaml/archive/0.2.5.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=libyaml.tar.gz --directory=src --strip-components=1 \
&& rm libyaml.tar.gz \
&& cd src \ && cd src \
&& ./bootstrap \ && ./bootstrap \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --disable-shared --enable-static \ && CFLAGS=-fPIC ./configure --prefix=/usr/local --disable-shared --enable-static \
@@ -557,7 +693,11 @@ RUN git clone --branch=0.2.5 --depth=1 https://github.com/yaml/libyaml.git src \
&& cd .. \ && cd .. \
&& rm -rf src && rm -rf src
RUN git clone --branch=v2.15.3 --depth=1 https://gitlab.gnome.org/GNOME/libxml2.git src \ RUN curl --fail --location --output libxml2.tar.gz \
https://gitlab.gnome.org/GNOME/libxml2/-/archive/v2.15.3/libxml2-v2.15.3.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=libxml2.tar.gz --directory=src --strip-components=1 \
&& rm libxml2.tar.gz \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \ -DBUILD_SHARED_LIBS=OFF \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
@@ -571,7 +711,11 @@ RUN git clone --branch=v2.15.3 --depth=1 https://gitlab.gnome.org/GNOME/libxml2.
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=1.3.15 --depth=1 https://github.com/sewenew/redis-plus-plus.git src \ RUN curl --fail --location --output redis-plus-plus.tar.gz \
https://wangguofang.net/github.com/sewenew/redis-plus-plus/archive/1.3.15.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=redis-plus-plus.tar.gz --directory=src --strip-components=1 \
&& rm redis-plus-plus.tar.gz \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ && cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DREDIS_PLUS_PLUS_BUILD_SHARED=OFF \ -DREDIS_PLUS_PLUS_BUILD_SHARED=OFF \
-DREDIS_PLUS_PLUS_BUILD_STATIC=ON \ -DREDIS_PLUS_PLUS_BUILD_STATIC=ON \
@@ -580,7 +724,11 @@ RUN git clone --branch=1.3.15 --depth=1 https://github.com/sewenew/redis-plus-pl
&& cmake --build build --parallel "$(nproc)" --target install \ && cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src && rm -rf build src
RUN git clone --branch=v1.8.3 --depth=1 https://github.com/libunwind/libunwind.git src \ RUN curl --fail --location --output libunwind.tar.gz \
https://wangguofang.net/github.com/libunwind/libunwind/archive/v1.8.3.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=libunwind.tar.gz --directory=src --strip-components=1 \
&& rm libunwind.tar.gz \
&& cd src \ && cd src \
&& autoreconf --install \ && autoreconf --install \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local \ && CFLAGS=-fPIC ./configure --prefix=/usr/local \
@@ -595,7 +743,11 @@ RUN git clone --branch=v1.8.3 --depth=1 https://github.com/libunwind/libunwind.g
&& cd .. \ && cd .. \
&& rm -rf src && rm -rf src
RUN git clone --branch=5.3.1 --depth=1 https://github.com/jemalloc/jemalloc.git src \ RUN curl --fail --location --output jemalloc.tar.gz \
https://wangguofang.net/github.com/jemalloc/jemalloc/archive/5.3.1.tar.gz \
&& mkdir src \
&& tar --extract --gzip --file=jemalloc.tar.gz --directory=src --strip-components=1 \
&& rm jemalloc.tar.gz \
&& cd src \ && cd src \
&& ./autogen.sh \ && ./autogen.sh \
&& CFLAGS=-fPIC CXXFLAGS=-fPIC ./configure --prefix=/usr/local \ && CFLAGS=-fPIC CXXFLAGS=-fPIC ./configure --prefix=/usr/local \