@@ -22,7 +22,6 @@ FROM quay.io/pypa/manylinux2014_${ARCH}
22
22
23
23
ARG PYTHON_VERSION
24
24
ARG PYTHON_SPEC
25
- ARG PLATFORM
26
25
ARG ARCH
27
26
28
27
ENV PYTHON_VERSION=${PYTHON_VERSION}
@@ -36,6 +35,7 @@ ENV PYTHON_LIBRARIES /opt/python/${PYTHON_SPEC}/lib/python${PYTHON_VERSION}
36
35
RUN pip3 install pyyaml
37
36
38
37
ADD .build/dependencies.yaml /
38
+ ADD .build/pulsar-client-cpp-version.txt /
39
39
ADD .build/dep-version.py /usr/local/bin
40
40
41
41
# Download and compile boost
@@ -54,3 +54,71 @@ RUN CMAKE_VERSION=$(dep-version.py cmake) && \
54
54
cp cmake-${CMAKE_VERSION}-linux-${ARCH}/bin/* /usr/bin/ && \
55
55
cp -r cmake-${CMAKE_VERSION}-linux-${ARCH}/share/cmake-* /usr/share/ && \
56
56
rm -rf cmake-${CMAKE_VERSION}-linux-${ARCH} cmake-${CMAKE_VERSION}-linux-${ARCH}.tar.gz
57
+
58
+ # Download and compile protobuf
59
+ RUN PROTOBUF_VERSION=$(dep-version.py protobuf) && \
60
+ curl -O -L https://github.com/google/protobuf/releases/download/v${PROTOBUF_VERSION}/protobuf-cpp-${PROTOBUF_VERSION}.tar.gz && \
61
+ tar xfz protobuf-cpp-${PROTOBUF_VERSION}.tar.gz && \
62
+ cd protobuf-${PROTOBUF_VERSION}/ && \
63
+ CXXFLAGS=-fPIC ./configure && \
64
+ make -j8 && make install && ldconfig && \
65
+ rm -rf /protobuf-cpp-${PROTOBUF_VERSION}.tar.gz /protobuf-${PROTOBUF_VERSION}
66
+
67
+ # ZLib
68
+ RUN ZLIB_VERSION=$(dep-version.py zlib) && \
69
+ curl -O -L https://github.com/madler/zlib/archive/v${ZLIB_VERSION}.tar.gz && \
70
+ tar xfz v${ZLIB_VERSION}.tar.gz && \
71
+ cd zlib-${ZLIB_VERSION} && \
72
+ CFLAGS="-fPIC -O3" ./configure && \
73
+ make -j8 && make install && \
74
+ rm -rf /v${ZLIB_VERSION}.tar.gz /zlib-${ZLIB_VERSION}
75
+
76
+ # Zstandard
77
+ RUN ZSTD_VERSION=$(dep-version.py zstd) && \
78
+ curl -O -L https://github.com/facebook/zstd/releases/download/v${ZSTD_VERSION}/zstd-${ZSTD_VERSION}.tar.gz && \
79
+ tar xfz zstd-${ZSTD_VERSION}.tar.gz && \
80
+ cd zstd-${ZSTD_VERSION} && \
81
+ CFLAGS="-fPIC -O3" make -j8 && \
82
+ make install && \
83
+ rm -rf /zstd-${ZSTD_VERSION} /zstd-${ZSTD_VERSION}.tar.gz
84
+
85
+ # Snappy
86
+ RUN SNAPPY_VERSION=$(dep-version.py snappy) && \
87
+ curl -O -L https://github.com/google/snappy/archive/refs/tags/${SNAPPY_VERSION}.tar.gz && \
88
+ tar xfz ${SNAPPY_VERSION}.tar.gz && \
89
+ cd snappy-${SNAPPY_VERSION} && \
90
+ CXXFLAGS="-fPIC -O3" cmake . -DSNAPPY_BUILD_TESTS=OFF -DSNAPPY_BUILD_BENCHMARKS=OFF && \
91
+ make -j8 && make install && \
92
+ rm -rf /snappy-${SNAPPY_VERSION} /${SNAPPY_VERSION}.tar.gz
93
+
94
+ RUN OPENSSL_VERSION=$(dep-version.py openssl) && \
95
+ OPENSSL_VERSION_UNDERSCORE=$(echo $OPENSSL_VERSION | sed 's/\. /_/g' ) && \
96
+ curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_${OPENSSL_VERSION_UNDERSCORE}.tar.gz && \
97
+ tar xfz OpenSSL_${OPENSSL_VERSION_UNDERSCORE}.tar.gz && \
98
+ cd openssl-OpenSSL_${OPENSSL_VERSION_UNDERSCORE}/ && \
99
+ ./config -fPIC --prefix=/usr/local/ssl/ && \
100
+ make -j8 && make install && \
101
+ rm -rf /OpenSSL_${OPENSSL_VERSION_UNDERSCORE}.tar.gz /openssl-OpenSSL_${OPENSSL_VERSION_UNDERSCORE}
102
+
103
+ ENV LD_LIBRARY_PATH /usr/local/ssl/lib/:/usr/local/lib
104
+ ENV OPENSSL_ROOT_DIR /usr/local/ssl/
105
+
106
+ # LibCurl
107
+ RUN CURL_VERSION=$(dep-version.py curl) && \
108
+ CURL_VERSION_UNDERSCORE=$(echo $CURL_VERSION | sed 's/\. /_/g' ) && \
109
+ curl -O -L https://github.com/curl/curl/releases/download/curl-${CURL_VERSION_UNDERSCORE}/curl-${CURL_VERSION}.tar.gz && \
110
+ tar xfz curl-${CURL_VERSION}.tar.gz && \
111
+ cd curl-${CURL_VERSION} && \
112
+ CFLAGS=-fPIC ./configure --with-ssl=/usr/local/ssl/ --without-zstd && \
113
+ make -j8 && make install && \
114
+ rm -rf /curl-${CURL_VERSION}.tar.gz /curl-${CURL_VERSION}
115
+
116
+ # Pulsar client C++
117
+ RUN PULSAR_CPP_VERSION=$(cat pulsar-client-cpp-version.txt | xargs) && \
118
+ curl -O -L https://archive.apache.org/dist/pulsar/pulsar-client-cpp-${PULSAR_CPP_VERSION}/apache-pulsar-client-cpp-${PULSAR_CPP_VERSION}.tar.gz && \
119
+ tar xfz apache-pulsar-client-cpp-${PULSAR_CPP_VERSION}.tar.gz && \
120
+ cd apache-pulsar-client-cpp-${PULSAR_CPP_VERSION} && \
121
+ cmake . -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=OFF -DBUILD_STATIC_LIB=OFF -DLINK_STATIC=ON && \
122
+ make -j8 && \
123
+ make install && \
124
+ rm -rf apache-pulsar-client-cpp-${PULSAR_CPP_VERSION} apache-pulsar-client-cpp-${PULSAR_CPP_VERSION}.tar.gz
0 commit comments