]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/opentelemetry-cpp/docker/Dockerfile.centos
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / docker / Dockerfile.centos
1 FROM centos:7
2
3 ARG TOOLSET_VER=11
4
5 RUN yum update -y && yum install -y centos-release-scl epel-release
6 RUN yum install -y devtoolset-${TOOLSET_VER} \
7 cmake3 git \
8 openssl-devel \
9 libcurl-devel \
10 && source /opt/rh/devtoolset-${TOOLSET_VER}/enable
11
12 RUN echo "source /opt/rh/devtoolset-${TOOLSET_VER}/enable" >> /etc/bashrc
13 RUN echo "BOOST_LIBRARYDIR=/usr/lib64/boost169" >> /etc/bashrc
14 RUN echo "BOOST_INCLUDEDIR=/usr/include/boost169" >> /etc/bashrc
15
16 ARG GRPC_VERSION=v1.43.2
17
18 # install gRPC
19 RUN git clone --depth=1 -b $GRPC_VERSION https://github.com/grpc/grpc.git \
20 && cd grpc && git submodule update --init \
21 && mkdir -p "third_party/abseil-cpp/build" && cd "third_party/abseil-cpp/build" \
22 && source /opt/rh/devtoolset-${TOOLSET_VER}/enable \
23 && cmake3 -DCMAKE_CXX_STANDARD=17 -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE .. \
24 && make -j${nproc} install && cd ../../.. \
25 && mkdir build && cd build \
26 && cmake3 \
27 -DCMAKE_CXX_STANDARD=17 \
28 -DCMAKE_BUILD_TYPE=Release \
29 -DgRPC_INSTALL=ON \
30 -DgRPC_BUILD_TESTS=OFF \
31 -DgRPC_ABSL_PROVIDER=package \
32 -DgRPC_SSL_PROVIDER=package \
33 .. && \
34 make -j${nproc} install && make clean && ldconfig
35
36 # install thrift
37 ARG THRIFT_VERSION=0.14.1
38 RUN yum install -y \
39 boost169-devel \
40 libevent-devel \
41 wget \
42 && wget https://github.com/apache/thrift/archive/refs/tags/v$THRIFT_VERSION.tar.gz \
43 && tar -xvf v$THRIFT_VERSION.tar.gz \
44 && mkdir -p thrift-$THRIFT_VERSION/build && cd thrift-$THRIFT_VERSION/build \
45 && source /opt/rh/devtoolset-${TOOLSET_VER}/enable \
46 && export BOOST_INCLUDEDIR=/usr/include/boost169 \
47 && export BOOST_LIBRARYDIR=/usr/lib64/boost169 \
48 && cmake3 \
49 -DCMAKE_BUILD_TYPE=Release \
50 -DBUILD_COMPILER=OFF \
51 -DBUILD_CPP=ON \
52 -DBUILD_LIBRARIES=ON \
53 -DBUILD_NODEJS=OFF \
54 -DBUILD_PYTHON=OFF \
55 -DBUILD_JAVASCRIPT=OFF \
56 -DBUILD_C_GLIB=OFF \
57 -DBUILD_JAVA=OFF \
58 -DBUILD_TESTING=OFF \
59 -DBUILD_TUTORIALS=OFF \
60 -DWITH_STDTHREADS=ON \
61 -DWITH_BOOSTTHREADS=OFF \
62 -DWITH_BOOST_FUNCTIONAL=OFF \
63 -DWITH_BOOST_SMART_PTR=OFF \
64 .. \
65 && make -j${nproc} && make install && ldconfig
66
67 #install opentelemetry-cpp
68 RUN git clone --depth=1 https://github.com/open-telemetry/opentelemetry-cpp.git \
69 && cd opentelemetry-cpp && git submodule update --init \
70 && mkdir -p build && cd build \
71 && source /opt/rh/devtoolset-${TOOLSET_VER}/enable \
72 && export BOOST_INCLUDEDIR=/usr/include/boost169 \
73 && export BOOST_LIBRARYDIR=/usr/lib64/boost169 \
74 && cmake3 \
75 -DCMAKE_BUILD_TYPE=Release \
76 -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \
77 -DWITH_ZIPKIN=ON \
78 -DWITH_JAEGER=ON \
79 -DBUILD_TESTING=OFF \
80 -DWITH_OTLP=ON \
81 .. \
82 && make -j${nproc} install && ldconfig