1919
2020# Build pulsar client library in Centos with tools to build static RPM
2121
22- FROM centos:7
22+ FROM rockylinux:8
2323
2424ARG PLATFORM
2525
@@ -30,87 +30,19 @@ RUN yum update -y && \
3030 rpm-build \
3131 which \
3232 createrepo \
33- libstdc++-static \
34- python3
33+ git \
34+ python3 \
35+ python3-pip
36+ RUN dnf --enablerepo=powertools install -y libstdc++-static
3537
3638RUN pip3 install pyyaml
3739
3840ADD .build/dependencies.yaml /
3941ADD .build/dep-version.py /usr/local/bin
4042
41- # Download and compile boost
42- # GCC 4.8.2 implementation of std::regex is buggy, so we install boost::regex here
43- RUN BOOST_VERSION=$(dep-version.py boost) && \
44- echo "BOOST VERSION: '${BOOST_VERSION}'" && \
45- curl -O -L https://github.com/boostorg/boost/releases/download/boost-${BOOST_VERSION}/boost-${BOOST_VERSION}.tar.gz && \
46- tar zxf boost-${BOOST_VERSION}.tar.gz && \
47- cd boost-${BOOST_VERSION} && \
48- ./bootstrap.sh --with-libraries=regex && \
49- ./b2 address-model=64 cxxflags="-fPIC -std=c++11" link=static threading=multi variant=release install && \
50- rm -rf /boost-${BOOST_VERSION}.tar.gz /boost-${BOOST_VERSION}
51-
52- RUN CMAKE_VERSION=$(dep-version.py cmake) && \
53- curl -O -L https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-${PLATFORM}.tar.gz && \
54- tar xfz cmake-${CMAKE_VERSION}-linux-${PLATFORM}.tar.gz && \
55- cp cmake-${CMAKE_VERSION}-linux-${PLATFORM}/bin/* /usr/bin/ && \
56- cp -r cmake-${CMAKE_VERSION}-linux-${PLATFORM}/share/cmake-* /usr/share/ && \
57- rm -rf cmake-${CMAKE_VERSION}-linux-${PLATFORM} cmake-${CMAKE_VERSION}-linux-${PLATFORM}.tar.gz
58-
59- # Download and compile protobuf
60- RUN PROTOBUF_VERSION=$(dep-version.py protobuf) && \
61- curl -O -L https://github.com/google/protobuf/releases/download/v${PROTOBUF_VERSION}/protobuf-cpp-${PROTOBUF_VERSION}.tar.gz && \
62- tar xfz protobuf-cpp-${PROTOBUF_VERSION}.tar.gz && \
63- cd protobuf-${PROTOBUF_VERSION}/ && \
64- CXXFLAGS=-fPIC ./configure && \
65- make -j8 && make install && ldconfig && \
66- rm -rf /protobuf-cpp-${PROTOBUF_VERSION}.tar.gz /protobuf-${PROTOBUF_VERSION}
67-
68- # ZLib
69- RUN ZLIB_VERSION=$(dep-version.py zlib) && \
70- curl -O -L https://github.com/madler/zlib/archive/v${ZLIB_VERSION}.tar.gz && \
71- tar xfz v${ZLIB_VERSION}.tar.gz && \
72- cd zlib-${ZLIB_VERSION} && \
73- CFLAGS="-fPIC -O3" ./configure && \
74- make -j8 && make install && \
75- rm -rf /v${ZLIB_VERSION}.tar.gz /zlib-${ZLIB_VERSION}
76-
77- # Zstandard
78- RUN ZSTD_VERSION=$(dep-version.py zstd) && \
79- curl -O -L https://github.com/facebook/zstd/releases/download/v${ZSTD_VERSION}/zstd-${ZSTD_VERSION}.tar.gz && \
80- tar xfz zstd-${ZSTD_VERSION}.tar.gz && \
81- cd zstd-${ZSTD_VERSION} && \
82- CFLAGS="-fPIC -O3" make -j8 && \
83- make install && \
84- rm -rf /zstd-${ZSTD_VERSION} /zstd-${ZSTD_VERSION}.tar.gz
85-
86- # Snappy
87- RUN SNAPPY_VERSION=$(dep-version.py snappy) && \
88- curl -O -L https://github.com/google/snappy/archive/refs/tags/${SNAPPY_VERSION}.tar.gz && \
89- tar xfz ${SNAPPY_VERSION}.tar.gz && \
90- cd snappy-${SNAPPY_VERSION} && \
91- CXXFLAGS="-fPIC -O3" cmake . -DSNAPPY_BUILD_TESTS=OFF -DSNAPPY_BUILD_BENCHMARKS=OFF && \
92- make -j8 && make install && \
93- rm -rf /snappy-${SNAPPY_VERSION} /${SNAPPY_VERSION}.tar.gz
94-
95- RUN OPENSSL_VERSION=$(dep-version.py openssl) && \
96- OPENSSL_VERSION_UNDERSCORE=$(echo $OPENSSL_VERSION | sed 's/\. /_/g' ) && \
97- curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_${OPENSSL_VERSION_UNDERSCORE}.tar.gz && \
98- tar xfz OpenSSL_${OPENSSL_VERSION_UNDERSCORE}.tar.gz && \
99- cd openssl-OpenSSL_${OPENSSL_VERSION_UNDERSCORE}/ && \
100- ./Configure -fPIC --prefix=/usr/local/ssl/ linux-${PLATFORM} && \
101- make -j8 && make install && \
102- rm -rf /OpenSSL_${OPENSSL_VERSION_UNDERSCORE}.tar.gz /openssl-OpenSSL_${OPENSSL_VERSION_UNDERSCORE}
103-
104- ENV LD_LIBRARY_PATH /usr/local/ssl/lib/:
105- ENV OPENSSL_ROOT_DIR /usr/local/ssl/
106-
107- # LibCurl
108- RUN CURL_VERSION=$(dep-version.py curl) && \
109- CURL_VERSION_UNDERSCORE=$(echo $CURL_VERSION | sed 's/\. /_/g' ) && \
110- curl -O -L https://github.com/curl/curl/releases/download/curl-${CURL_VERSION_UNDERSCORE}/curl-${CURL_VERSION}.tar.gz && \
111- tar xfz curl-${CURL_VERSION}.tar.gz && \
112- cd curl-${CURL_VERSION} && \
113- CFLAGS=-fPIC ./configure --with-ssl=/usr/local/ssl/ --without-zstd --without-libpsl && \
114- make -j8 && make install && \
115- rm -rf /curl-${CURL_VERSION}.tar.gz /curl-${CURL_VERSION}
43+ # Vcpkg does not provide pre-built binaries for Arm architectures so we need to build vcpkg from source
44+ RUN yum install -y cmake
45+ RUN dnf --enablerepo=devel install -y ninja-build
11646
47+ # Dependencies when building OpenSSL
48+ RUN yum install -y perl-IPC-Cmd
0 commit comments