Build Apache Arrow and Parquet from source in debian13 image
Add pinned xsimd 14.2.0, Apache Thrift v0.22.0 (C++ library only), Snappy 1.2.2, LZ4 v1.10.0, and Apache Arrow 25.0.1 with Parquet as static PIC builds. Arrow uses ARROW_DEPENDENCY_SOURCE=SYSTEM so no dependencies are fetched implicitly, disables the bundled jemalloc and mimalloc allocators, and enables Parquet encryption via OpenSSL. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01M5XtQocmT1zExJBt4oh3YK
This commit is contained in:
1 parent
d00a3b9544
commit
aa85a6f77b
2 files changed
+109
-1
No files matched your search
@@ -768,4 +768,105 @@ RUN curl --fail --location --output libproxyprotocol.tar.gz \
|
||||
&& cp src/src/proxy_protocol.h /usr/local/include/ \
|
||||
&& rm -rf src
|
||||
|
||||
RUN curl --fail --location --output xsimd.tar.gz \
|
||||
https://wangguofang.net/github.com/xtensor-stack/xsimd/archive/14.2.0.tar.gz \
|
||||
&& mkdir src \
|
||||
&& tar --extract --gzip --file=xsimd.tar.gz --directory=src --strip-components=1 \
|
||||
&& rm xsimd.tar.gz \
|
||||
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_TESTS=OFF \
|
||||
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN curl --fail --location --output thrift.tar.gz \
|
||||
https://wangguofang.net/github.com/apache/thrift/archive/v0.22.0.tar.gz \
|
||||
&& mkdir src \
|
||||
&& tar --extract --gzip --file=thrift.tar.gz --directory=src --strip-components=1 \
|
||||
&& rm thrift.tar.gz \
|
||||
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_COMPILER=OFF \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DBUILD_TUTORIALS=OFF \
|
||||
-DCMAKE_INSTALL_DIR=lib/x86_64-linux-gnu/cmake \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DLIB_INSTALL_DIR=lib/x86_64-linux-gnu \
|
||||
-DPKGCONFIG_INSTALL_DIR=lib/x86_64-linux-gnu/pkgconfig \
|
||||
-DWITH_AS3=OFF \
|
||||
-DWITH_C_GLIB=OFF \
|
||||
-DWITH_CPP=ON \
|
||||
-DWITH_JAVA=OFF \
|
||||
-DWITH_JAVASCRIPT=OFF \
|
||||
-DWITH_LIBEVENT=OFF \
|
||||
-DWITH_NODEJS=OFF \
|
||||
-DWITH_OPENSSL=OFF \
|
||||
-DWITH_PYTHON=OFF \
|
||||
-DWITH_QT5=OFF \
|
||||
-DWITH_ZLIB=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN curl --fail --location --output snappy.tar.gz \
|
||||
https://wangguofang.net/github.com/google/snappy/archive/1.2.2.tar.gz \
|
||||
&& mkdir src \
|
||||
&& tar --extract --gzip --file=snappy.tar.gz --directory=src --strip-components=1 \
|
||||
&& rm snappy.tar.gz \
|
||||
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DSNAPPY_BUILD_BENCHMARKS=OFF \
|
||||
-DSNAPPY_BUILD_TESTS=OFF \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN curl --fail --location --output lz4.tar.gz \
|
||||
https://wangguofang.net/github.com/lz4/lz4/archive/v1.10.0.tar.gz \
|
||||
&& mkdir src \
|
||||
&& tar --extract --gzip --file=lz4.tar.gz --directory=src --strip-components=1 \
|
||||
&& rm lz4.tar.gz \
|
||||
&& cmake -G Ninja -S src/build/cmake -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_STATIC_LIBS=ON \
|
||||
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DLZ4_BUILD_CLI=OFF \
|
||||
-DLZ4_POSITION_INDEPENDENT_LIB=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
RUN curl --fail --location --output arrow.tar.gz \
|
||||
https://wangguofang.net/github.com/apache/arrow/archive/apache-arrow-25.0.1.tar.gz \
|
||||
&& mkdir src \
|
||||
&& tar --extract --gzip --file=arrow.tar.gz --directory=src --strip-components=1 \
|
||||
&& rm arrow.tar.gz \
|
||||
&& cmake -G Ninja -S src/cpp -B build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DARROW_BUILD_BENCHMARKS=OFF \
|
||||
-DARROW_BUILD_EXAMPLES=OFF \
|
||||
-DARROW_BUILD_SHARED=OFF \
|
||||
-DARROW_BUILD_STATIC=ON \
|
||||
-DARROW_BUILD_TESTS=OFF \
|
||||
-DARROW_BUILD_UTILITIES=OFF \
|
||||
-DARROW_DEPENDENCY_SOURCE=SYSTEM \
|
||||
-DARROW_DEPENDENCY_USE_SHARED=OFF \
|
||||
-DARROW_IPC=ON \
|
||||
-DARROW_JEMALLOC=OFF \
|
||||
-DARROW_MIMALLOC=OFF \
|
||||
-DARROW_PARQUET=ON \
|
||||
-DARROW_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DARROW_WITH_BROTLI=OFF \
|
||||
-DARROW_WITH_BZ2=OFF \
|
||||
-DARROW_WITH_LZ4=ON \
|
||||
-DARROW_WITH_SNAPPY=ON \
|
||||
-DARROW_WITH_ZLIB=ON \
|
||||
-DARROW_WITH_ZSTD=ON \
|
||||
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DPARQUET_BUILD_EXAMPLES=OFF \
|
||||
-DPARQUET_BUILD_EXECUTABLES=OFF \
|
||||
-DPARQUET_REQUIRE_ENCRYPTION=ON \
|
||||
&& cmake --build build --parallel "$(nproc)" --target install \
|
||||
&& rm -rf build src
|
||||
|
||||
CMD ["/bin/bash"]
|
||||
Reference in new issue
Block a user