diff options
Diffstat (limited to '')
4 files changed, 176 insertions, 0 deletions
diff --git a/src/jaegertracing/opentelemetry-cpp/docker/Dockerfile b/src/jaegertracing/opentelemetry-cpp/docker/Dockerfile new file mode 100644 index 000000000..118cac62f --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/docker/Dockerfile @@ -0,0 +1,36 @@ +ARG BASE_IMAGE=ubuntu:latest +ARG GRPC_IMAGE=grpc-${BASE_IMAGE} +ARG THRIFT_IMAGE=thrift-${BASE_IMAGE} + +FROM ${GRPC_IMAGE} as grpc +FROM ${THRIFT_IMAGE} as thrift + +FROM base-${BASE_IMAGE}-dev AS otel-cpp + +ARG CORES=${nproc} +ARG OTEL_GIT_TAG=v1.3.0 + +COPY --from=grpc / /usr/local +COPY --from=thrift / /usr/local + +#install opentelemetry-cpp +RUN git clone --recurse-submodules -j ${CORES} --depth=1 \ + -b ${OTEL_GIT_TAG} https://github.com/open-telemetry/opentelemetry-cpp.git \ + && cd opentelemetry-cpp \ + && mkdir -p build && cd build \ + && cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \ + -DWITH_ZIPKIN=ON \ + -DWITH_JAEGER=ON \ + -DCMAKE_INSTALL_PREFIX=/opt/third_party/install \ + -DBUILD_TESTING=OFF \ + -DWITH_OTLP=ON \ + -DWITH_OTLP_GRPC=ON \ + -DBUILD_SHARED_LIBS=ON \ + .. \ + && cmake --build . -j ${CORES} --target install + +FROM scratch as final + +COPY --from=otel-cpp /opt/third_party/install / diff --git a/src/jaegertracing/opentelemetry-cpp/docker/Dockerfile.alpine.base b/src/jaegertracing/opentelemetry-cpp/docker/Dockerfile.alpine.base new file mode 100644 index 000000000..2595efa70 --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/docker/Dockerfile.alpine.base @@ -0,0 +1,15 @@ +ARG BASE_IMAGE=alpine:latest +ARG CORES=${nproc} + +FROM ${BASE_IMAGE} as final + +RUN apk update + +RUN apk add --update alpine-sdk \ + && apk add cmake openssl openssl-dev g++ \ + curl-dev git autoconf libtool linux-headers \ + boost-dev libevent-dev openssl-dev + +RUN mkdir -p /opt/third_party/install + +WORKDIR /opt diff --git a/src/jaegertracing/opentelemetry-cpp/docker/Dockerfile.centos b/src/jaegertracing/opentelemetry-cpp/docker/Dockerfile.centos new file mode 100644 index 000000000..66138ba60 --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/docker/Dockerfile.centos @@ -0,0 +1,82 @@ +FROM centos:7 + +ARG TOOLSET_VER=11 + +RUN yum update -y && yum install -y centos-release-scl epel-release +RUN yum install -y devtoolset-${TOOLSET_VER} \ + cmake3 git \ + openssl-devel \ + libcurl-devel \ + && source /opt/rh/devtoolset-${TOOLSET_VER}/enable + +RUN echo "source /opt/rh/devtoolset-${TOOLSET_VER}/enable" >> /etc/bashrc +RUN echo "BOOST_LIBRARYDIR=/usr/lib64/boost169" >> /etc/bashrc +RUN echo "BOOST_INCLUDEDIR=/usr/include/boost169" >> /etc/bashrc + +ARG GRPC_VERSION=v1.43.2 + +# install gRPC +RUN git clone --depth=1 -b $GRPC_VERSION https://github.com/grpc/grpc.git \ + && cd grpc && git submodule update --init \ + && mkdir -p "third_party/abseil-cpp/build" && cd "third_party/abseil-cpp/build" \ + && source /opt/rh/devtoolset-${TOOLSET_VER}/enable \ + && cmake3 -DCMAKE_CXX_STANDARD=17 -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE .. \ + && make -j${nproc} install && cd ../../.. \ + && mkdir build && cd build \ + && cmake3 \ + -DCMAKE_CXX_STANDARD=17 \ + -DCMAKE_BUILD_TYPE=Release \ + -DgRPC_INSTALL=ON \ + -DgRPC_BUILD_TESTS=OFF \ + -DgRPC_ABSL_PROVIDER=package \ + -DgRPC_SSL_PROVIDER=package \ + .. && \ + make -j${nproc} install && make clean && ldconfig + +# install thrift +ARG THRIFT_VERSION=0.14.1 +RUN yum install -y \ + boost169-devel \ + libevent-devel \ + wget \ + && wget https://github.com/apache/thrift/archive/refs/tags/v$THRIFT_VERSION.tar.gz \ + && tar -xvf v$THRIFT_VERSION.tar.gz \ + && mkdir -p thrift-$THRIFT_VERSION/build && cd thrift-$THRIFT_VERSION/build \ + && source /opt/rh/devtoolset-${TOOLSET_VER}/enable \ + && export BOOST_INCLUDEDIR=/usr/include/boost169 \ + && export BOOST_LIBRARYDIR=/usr/lib64/boost169 \ + && cmake3 \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_COMPILER=OFF \ + -DBUILD_CPP=ON \ + -DBUILD_LIBRARIES=ON \ + -DBUILD_NODEJS=OFF \ + -DBUILD_PYTHON=OFF \ + -DBUILD_JAVASCRIPT=OFF \ + -DBUILD_C_GLIB=OFF \ + -DBUILD_JAVA=OFF \ + -DBUILD_TESTING=OFF \ + -DBUILD_TUTORIALS=OFF \ + -DWITH_STDTHREADS=ON \ + -DWITH_BOOSTTHREADS=OFF \ + -DWITH_BOOST_FUNCTIONAL=OFF \ + -DWITH_BOOST_SMART_PTR=OFF \ + .. \ + && make -j${nproc} && make install && ldconfig + +#install opentelemetry-cpp +RUN git clone --depth=1 https://github.com/open-telemetry/opentelemetry-cpp.git \ + && cd opentelemetry-cpp && git submodule update --init \ + && mkdir -p build && cd build \ + && source /opt/rh/devtoolset-${TOOLSET_VER}/enable \ + && export BOOST_INCLUDEDIR=/usr/include/boost169 \ + && export BOOST_LIBRARYDIR=/usr/lib64/boost169 \ + && cmake3 \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \ + -DWITH_ZIPKIN=ON \ + -DWITH_JAEGER=ON \ + -DBUILD_TESTING=OFF \ + -DWITH_OTLP=ON \ + .. \ + && make -j${nproc} install && ldconfig diff --git a/src/jaegertracing/opentelemetry-cpp/docker/Dockerfile.debian.deps b/src/jaegertracing/opentelemetry-cpp/docker/Dockerfile.debian.deps new file mode 100644 index 000000000..0634c1197 --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/docker/Dockerfile.debian.deps @@ -0,0 +1,43 @@ +ARG BASE_IMAGE=ubuntu:latest +ARG CORES=${nproc} + +FROM ${BASE_IMAGE} as base + +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get update && apt-get install -y build-essential autoconf \ + libtool pkg-config cmake git libssl-dev curl \ + libcurl4-openssl-dev libgtest-dev libgmock-dev libbenchmark-dev + +WORKDIR /work +RUN mkdir -p /opt/otel-cpp + +FROM base as grpc +# install grpc, protobuf and abseil +ARG GRPC_VERSION=1.43.2 + +ADD setup_grpc.sh . +RUN ./setup_grpc.sh -i "/opt/otel-cpp" -v ${GRPC_VERSION} + +FROM base as thrift +RUN apt-get install -y --no-install-recommends wget + +# install thrift +ARG THRIFT_VERSION=0.14.1 +ADD setup_thrift.sh . +RUN ./setup_thrift.sh -i "/opt/otel-cpp" + +FROM scratch as final + +COPY --from=grpc /opt/otel-cpp / +COPY --from=thrift /opt/otel-cpp / + +# how to use: +# +# docker create -ti --name deps otel-cpp-deps bash +# docker cp deps:/ ./ +# docker rm -f deps +# +# or: +# +# COPY --from=otel-cpp-deps /usr |