From 1f2377479640d25a57307a24ffebf492b13c5e6e Mon Sep 17 00:00:00 2001 From: Guofang Date: Sat, 12 Sep 2026 17:06:42 +0800 Subject: [PATCH] Fetch source archives instead of git clone in the Alpine image Replace every git-clone-based dependency fetch with a plain curl-and-extract of the corresponding tagged source archive (GitHub repos via the wangguofang.net/github.com proxy's /archive/.tar.gz, libxml2 via GitLab's -/archive/ endpoint), verified one at a time bottom-up so each change stayed isolated and cheap to test against the build cache. This avoids the git protocol/proxy round-trip per dependency and matches the plain curl+tar pattern already used elsewhere in this Dockerfile (boost, libaio, gmp, nettle, gnutls, util-linux). log4cplus keeps git clone, since it needs `git submodule update --init` for its ThreadPool dependency, which a source archive can't provide. Folly/Fizz/Wangle/mvfst/fbthrift/CacheLib remain untouched and commented out. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01WGpSs9pKTbvPkmFvBaWhBp --- alpine3.24/Dockerfile | 192 +++++++++++++++++++++++++++++++++++------- 1 file changed, 160 insertions(+), 32 deletions(-) diff --git a/alpine3.24/Dockerfile b/alpine3.24/Dockerfile index 17763f6..55e3db0 100644 --- a/alpine3.24/Dockerfile +++ b/alpine3.24/Dockerfile @@ -49,7 +49,11 @@ RUN curl --fail --location --output boost.tar.bz2 \ && cd .. \ && 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 \ && ./Configure --prefix=/usr/local --libdir=lib no-shared no-tests -fPIC \ && make --jobs="$(nproc)" \ @@ -57,7 +61,11 @@ RUN git clone --branch=openssl-3.0.15 --depth=1 https://github.com/openssl/opens && cd .. \ && 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 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ @@ -69,7 +77,11 @@ RUN git clone --branch=release-2.1.12-stable --depth=1 https://github.com/libeve && cmake --build build --parallel "$(nproc)" --target install \ && 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 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ @@ -81,7 +93,11 @@ RUN git clone --branch=v1.5.7 --depth=1 https://github.com/facebook/zstd.git src && cmake --build build --parallel "$(nproc)" --target install \ && 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 \ && CFLAGS=-fPIC ./configure --prefix=/usr/local --static \ && make --jobs="$(nproc)" \ @@ -89,7 +105,11 @@ RUN git clone --branch=v1.3.1 --depth=1 https://github.com/madler/zlib.git src \ && cd .. \ && 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 \ -Dprotobuf_BUILD_SHARED_LIBS=OFF \ -Dprotobuf_WITH_ZLIB=ON \ @@ -111,7 +131,11 @@ RUN git clone --branch=REL_2_0_5 --depth=1 https://gitee.com/mirrors/log4cplus.g && cmake --build build --parallel "$(nproc)" --target install \ && 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 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DBUILD_SHARED_LIBS=OFF \ @@ -121,7 +145,11 @@ RUN git clone --branch=12.2.0 --depth=1 https://github.com/fmtlib/fmt.git src \ && cmake --build build --parallel "$(nproc)" --target install \ && 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 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DBUILD_SHARED_LIBS=OFF \ @@ -133,7 +161,11 @@ RUN git clone --branch=v1.17.0 --depth=1 https://github.com/gabime/spdlog.git sr && cmake --build build --parallel "$(nproc)" --target install \ && 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 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DMAGIC_ENUM_OPT_BUILD_EXAMPLES=OFF \ @@ -142,7 +174,11 @@ RUN git clone --branch=v0.9.8 --depth=1 https://github.com/Neargye/magic_enum.gi && cmake --build build --parallel "$(nproc)" --target install \ && 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 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DFASTFLOAT_BENCHMARKS=OFF \ @@ -151,13 +187,21 @@ RUN git clone --branch=v8.2.10 --depth=1 https://github.com/fastfloat/fast_float && cmake --build build --parallel "$(nproc)" --target install \ && 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 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ && cmake --build build --parallel "$(nproc)" --target install \ && 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 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DBUILD_SHARED_LIBS=OFF \ @@ -171,7 +215,11 @@ RUN git clone --branch=v2.3.1 --depth=1 https://github.com/gflags/gflags.git src && cmake --build build --parallel "$(nproc)" --target install \ && 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 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DBUILD_SHARED_LIBS=OFF \ @@ -184,7 +232,11 @@ RUN git clone --branch=v0.7.1 --depth=1 https://github.com/google/glog.git src \ && cmake --build build --parallel "$(nproc)" --target install \ && 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 \ && CFLAGS=-fPIC ./configure --prefix=/usr/local \ && make --jobs="$(nproc)" ENABLE_SHARED=0 library \ @@ -201,7 +253,11 @@ RUN curl --fail --location --output libaio.tar.gz \ && make --directory=src ENABLE_SHARED=0 prefix=/usr/local install \ && 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 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DBUILD_DWARFDUMP=OFF \ @@ -215,7 +271,11 @@ RUN git clone --branch=v2.3.2 --depth=1 https://github.com/davea42/libdwarf-code && cmake --build build --parallel "$(nproc)" --target install \ && 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 \ && ./autogen.sh \ && ./configure --prefix=/usr/local --disable-shared --enable-static --with-pic \ @@ -224,7 +284,11 @@ RUN git clone --branch=1.0.20-RELEASE --depth=1 https://github.com/jedisct1/libs && cd .. \ && 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 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DBUILD_SHARED_LIBS=OFF \ @@ -233,7 +297,11 @@ RUN git clone --branch=v0.8.3 --depth=1 https://github.com/Cyan4973/xxHash.git s && cmake --build build --parallel "$(nproc)" --target install \ && 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 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DBUILD_GMOCK=ON \ @@ -245,7 +313,11 @@ RUN git clone --branch=v1.17.0 --depth=1 https://github.com/google/googletest.gi && cmake --build build --parallel "$(nproc)" --target install \ && 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 \ && ./autogen.sh \ && CFLAGS=-fPIC ./configure --prefix=/usr/local --disable-shared --enable-static \ @@ -349,7 +421,11 @@ RUN curl --fail --location --output util-linux.tar.xz \ && cd .. \ && 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 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DBUILD_SHARED=OFF \ @@ -366,7 +442,11 @@ RUN git clone --branch=v4.3.5 --depth=1 https://github.com/zeromq/libzmq.git src && cmake --build build --parallel "$(nproc)" --target install \ && 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 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ @@ -382,7 +462,11 @@ RUN git clone --branch=v4.2.1 --depth=1 https://github.com/zeromq/czmq.git src \ && cmake --build build --parallel "$(nproc)" --target install \ && 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 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DBUILD_OBJECT_LIBS=OFF \ @@ -395,7 +479,11 @@ RUN git clone --branch=1.9.8 --depth=1 https://github.com/open-source-parsers/js && cmake --build build --parallel "$(nproc)" --target install \ && 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 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ @@ -412,7 +500,11 @@ RUN git clone --branch=v2.15.0 --depth=1 https://github.com/confluentinc/librdka && cmake --build build --parallel "$(nproc)" --target install \ && 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 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DBUILD_APPS=OFF \ @@ -425,7 +517,11 @@ RUN git clone --branch=json-c-0.19-20260627 --depth=1 https://github.com/json-c/ && rm -rf build src 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 \ && cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ @@ -435,7 +531,11 @@ RUN git clone --branch=v1.1.0 --depth=1 https://github.com/Tencent/rapidjson.git && cmake --build build --parallel "$(nproc)" --target install \ && 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 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DBUILD_CURL_EXE=OFF \ @@ -460,7 +560,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 \ && 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 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DBUILD_SHARED_LIBS=OFF \ @@ -529,7 +633,11 @@ RUN curl --fail --location --output gnutls.tar.xz \ && cd .. \ && 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 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DBUILD_SHARED_LIBS=OFF \ @@ -539,7 +647,11 @@ RUN git clone --branch=1.13.3 --depth=1 https://github.com/maxmind/libmaxminddb. && cmake --build build --parallel "$(nproc)" --target install \ && 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 \ && ./bootstrap \ && CFLAGS=-fPIC ./configure --prefix=/usr/local --disable-shared --enable-static \ @@ -548,7 +660,11 @@ RUN git clone --branch=0.2.5 --depth=1 https://github.com/yaml/libyaml.git src \ && cd .. \ && 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 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DBUILD_SHARED_LIBS=OFF \ @@ -563,7 +679,11 @@ RUN git clone --branch=v2.15.3 --depth=1 https://gitlab.gnome.org/GNOME/libxml2. && cmake --build build --parallel "$(nproc)" --target install \ && 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 \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DREDIS_PLUS_PLUS_BUILD_SHARED=OFF \ @@ -573,7 +693,11 @@ RUN git clone --branch=1.3.15 --depth=1 https://github.com/sewenew/redis-plus-pl && cmake --build build --parallel "$(nproc)" --target install \ && rm -rf build 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 \ && ./autogen.sh \ && CFLAGS=-fPIC CXXFLAGS=-fPIC ./configure --prefix=/usr/local \ @@ -585,7 +709,11 @@ RUN git clone --branch=5.3.1 --depth=1 https://github.com/jemalloc/jemalloc.git && cd .. \ && rm -rf src -RUN git clone --branch=release-2.7.1 --depth=1 https://github.com/megastep/makeself.git src \ +RUN curl --fail --location --output makeself.tar.gz \ + https://wangguofang.net/github.com/megastep/makeself/archive/release-2.7.1.tar.gz \ + && mkdir src \ + && tar --extract --gzip --file=makeself.tar.gz --directory=src --strip-components=1 \ + && rm makeself.tar.gz \ && cp src/makeself.sh src/makeself-header.sh /usr/local/bin/ \ && ln -s makeself.sh /usr/local/bin/makeself \ && rm -rf src