diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-21 11:54:28 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-21 11:54:28 +0000 |
commit | e6918187568dbd01842d8d1d2c808ce16a894239 (patch) | |
tree | 64f88b554b444a49f656b6c656111a145cbbaa28 /src/jaegertracing/opentelemetry-cpp/docker | |
parent | Initial commit. (diff) | |
download | ceph-e6918187568dbd01842d8d1d2c808ce16a894239.tar.xz ceph-e6918187568dbd01842d8d1d2c808ce16a894239.zip |
Adding upstream version 18.2.2.upstream/18.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
16 files changed, 720 insertions, 0 deletions
diff --git a/src/jaegertracing/opentelemetry-cpp/docker/.gitignore b/src/jaegertracing/opentelemetry-cpp/docker/.gitignore new file mode 100644 index 000000000..21c4e486a --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/docker/.gitignore @@ -0,0 +1 @@ +**/setup-*.sh 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 diff --git a/src/jaegertracing/opentelemetry-cpp/docker/README.md b/src/jaegertracing/opentelemetry-cpp/docker/README.md new file mode 100644 index 000000000..165667117 --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/docker/README.md @@ -0,0 +1,24 @@ +# OpenTelemetry library builder + +**How to use this build script:** + +The build script `build.sh` can be used to build OpenTelemetry and +it's dependencies within the desired base image. +The final image only contains the necessary files in `/`. + +```sh +bash build.sh -b alpine -j ${nproc} -g v1.43.2 -o v1.3.0 -t 0.14.1 + +# copy to current dir +docker create -ti --name otel otel-cpp-<base_image> bash +docker cp otel:/ ./ +docker rm -f otel + +docker create -ti --name grpc grpc-<base_image> bash +docker cp grpc:/ ./ +docker rm -f grpc + +docker create -ti --name thrift thrift-<base_image> bash +docker cp thrift:/ ./ +docker rm -f thrift +``` diff --git a/src/jaegertracing/opentelemetry-cpp/docker/build.sh b/src/jaegertracing/opentelemetry-cpp/docker/build.sh new file mode 100644 index 000000000..53773b739 --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/docker/build.sh @@ -0,0 +1,86 @@ +#!/bin/bash + +# Copyright The OpenTelemetry Authors +# SPDX-License-Identifier: Apache-2.0 + +set -o errexit +set -o nounset +set -o pipefail + +Help() +{ + # Display Help + echo "Add description of the script functions here." + echo + echo "Syntax: scriptTemplate [-b|o|g|j]" + echo "options:" + echo "b Base image" + echo "o OpenTelemetry-cpp git tag" + echo "h Print Help." + echo "g gRPC git tag" + echo "t thrift version" + echo "j Parallel jobs" + echo + echo "how to use:" + echo + echo "docker create -ti --name otel otel-cpp-<base_image> bash" + echo "docker cp otel:/ ./" + echo "docker rm -f otel" + echo + echo "or:" + echo + echo "COPY --from=otel-cpp-<base_image> /usr" +} + +base_image=${base_image:="alpine"} +grpc_git_tag=${grpc_git_tag:="v1.43.2"} +thrift_version=${thrift_version:="0.14.1"} +otel_git_tag=${otel_git_tag:="v1.3.0"} +cores=${cores:=1} + +while getopts ":h:b:o:g:j:t:" option; do + case $option in + h) # display Help + Help + exit;; + b) # base image + base_image=$OPTARG + ;; + o) # OpenTelemetry-cpp git tag + otel_git_tag=$OPTARG + ;; + g) # gRPC git tag + grpc_git_tag=$OPTARG + ;; + t) # thrfit version + thrift_version=$OPTARG + ;; + j) # number of cores + cores=$OPTARG + ;; + \?) + Help + exit;; + esac +done + +docker build -t base-${base_image}-dev -f Dockerfile.${base_image}.base . + +pushd grpc/ +docker build --build-arg BASE_IMAGE=base-${base_image}-dev \ + --build-arg GRPC_GIT_TAG=${grpc_git_tag} \ + --build-arg CORES=${cores} \ + -t grpc-${base_image} -f Dockerfile . +popd + +pushd thrift/ +docker build --build-arg BASE_IMAGE=base-${base_image}-dev \ + --build-arg THRIFT_VERSION=${thrift_version} \ + --build-arg CORES=${cores} \ + -t thrift-${base_image} -f Dockerfile . +popd + +docker build --build-arg BASE_IMAGE=${base_image} \ + --build-arg CORES=${cores} \ + --build-arg OTEL_GIT_TAG=${otel_git_tag} \ + -t otel-cpp-${base_image} -f Dockerfile . diff --git a/src/jaegertracing/opentelemetry-cpp/docker/grpc/CMakeLists.txt b/src/jaegertracing/opentelemetry-cpp/docker/grpc/CMakeLists.txt new file mode 100644 index 000000000..8cb69cc6c --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/docker/grpc/CMakeLists.txt @@ -0,0 +1,84 @@ +cmake_minimum_required(VERSION 3.11 FATAL_ERROR) + +project( + dependencies + LANGUAGES CXX + VERSION 0.0.1) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_EXTENSIONS OFF) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_FLAGS "-O2") + +set(CMAKE_BUILD_TYPE + Release + CACHE STRING "Build type" FORCE) + +include(GNUInstallDirs) + +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY + ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY + ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY + ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}) + +set(INSTALL_LIBDIR + ${CMAKE_INSTALL_LIBDIR} + CACHE PATH "directory for libraries") +set(INSTALL_BINDIR + ${CMAKE_INSTALL_BINDIR} + CACHE PATH "directory for executables") +set(INSTALL_INCLUDEDIR + ${CMAKE_INSTALL_INCLUDEDIR} + CACHE PATH "directory for header files") + +set(DEF_INSTALL_CMAKEDIR share/cmake/${PROJECT_NAME}) +set(INSTALL_CMAKEDIR + ${DEF_INSTALL_CMAKEDIR} + CACHE PATH "directory for CMake files") + +set_property(DIRECTORY PROPERTY EP_BASE ${CMAKE_BINARY_DIR}/subs) + +set(STAGED_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/stage) +message(STATUS "${PROJECT_NAME} staged install: ${STAGED_INSTALL_PREFIX}") + +find_package(OpenSSL REQUIRED) +message("OpenSSL include dir: ${OPENSSL_INCLUDE_DIR}") +message("OpenSSL libraries: ${OPENSSL_LIBRARIES}") + +set(GRPC_GIT_TAG + "v1.45.2" + CACHE STRING "gRPC version") + +include(ExternalProject) +ExternalProject_Add( + grpc + GIT_REPOSITORY https://github.com/grpc/grpc.git + GIT_TAG ${GRPC_GIT_TAG} + GIT_SHALLOW 1 + UPDATE_COMMAND "" + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${STAGED_INSTALL_PREFIX} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + -DgRPC_SSL_PROVIDER=package + -DOPENSSL_ROOT_DIR=OpenSSL + -DgRPC_BUILD_TESTS=OFF + -DBUILD_SHARED_LIBS=ON + -DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF + -DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF + -DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF + -DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF + -DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF + -DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF + CMAKE_CACHE_ARGS -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} + TEST_AFTER_INSTALL 0 + DOWNLOAD_NO_PROGRESS 1 + LOG_CONFIGURE 1 + LOG_BUILD 0 + LOG_INSTALL 1) + +install( + DIRECTORY ${STAGED_INSTALL_PREFIX}/ + DESTINATION . + USE_SOURCE_PERMISSIONS) diff --git a/src/jaegertracing/opentelemetry-cpp/docker/grpc/Dockerfile b/src/jaegertracing/opentelemetry-cpp/docker/grpc/Dockerfile new file mode 100644 index 000000000..fee3082b2 --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/docker/grpc/Dockerfile @@ -0,0 +1,21 @@ +ARG BASE_IMAGE=ubuntu:latest +FROM ${BASE_IMAGE} AS grpc + +ARG CORES=${nproc} +ARG GRPC_GIT_TAG=v1.45.2 + +RUN mkdir mkdir -p /opt/third_party/grpc + +WORKDIR /opt/third_party/grpc + +ADD CMakeLists.txt /opt/third_party/grpc + +RUN mkdir build \ + && cd build \ + && cmake -DCMAKE_INSTALL_PREFIX=/opt/third_party/install \ + -DGRPC_GIT_TAG=${GRPC_GIT_TAG} /opt/third_party/grpc \ + && cmake --build . -j ${CORES} --target install + +FROM scratch as final + +COPY --from=grpc /opt/third_party/install / diff --git a/src/jaegertracing/opentelemetry-cpp/docker/thrift/CMakeLists.txt b/src/jaegertracing/opentelemetry-cpp/docker/thrift/CMakeLists.txt new file mode 100644 index 000000000..0028dc48c --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/docker/thrift/CMakeLists.txt @@ -0,0 +1,87 @@ +cmake_minimum_required(VERSION 3.11 FATAL_ERROR) + +project( + dependencies + LANGUAGES CXX + VERSION 0.0.1) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_EXTENSIONS OFF) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_FLAGS "-O2") + +set(CMAKE_BUILD_TYPE + Release + CACHE STRING "Build type" FORCE) + +include(GNUInstallDirs) + +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY + ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY + ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY + ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}) + +set(INSTALL_LIBDIR + ${CMAKE_INSTALL_LIBDIR} + CACHE PATH "directory for libraries") +set(INSTALL_BINDIR + ${CMAKE_INSTALL_BINDIR} + CACHE PATH "directory for executables") +set(INSTALL_INCLUDEDIR + ${CMAKE_INSTALL_INCLUDEDIR} + CACHE PATH "directory for header files") + +set(DEF_INSTALL_CMAKEDIR share/cmake/${PROJECT_NAME}) +set(INSTALL_CMAKEDIR + ${DEF_INSTALL_CMAKEDIR} + CACHE PATH "directory for CMake files") + +set_property(DIRECTORY PROPERTY EP_BASE ${CMAKE_BINARY_DIR}/subs) + +set(STAGED_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/stage) +message(STATUS "${PROJECT_NAME} staged install: ${STAGED_INSTALL_PREFIX}") + +find_package(OpenSSL REQUIRED) +message("OpenSSL include dir: ${OPENSSL_INCLUDE_DIR}") +message("OpenSSL libraries: ${OPENSSL_LIBRARIES}") + +set(THRIFT_VERSION + "0.14.1" + CACHE STRING "thrift version") + +include(ExternalProject) +ExternalProject_Add( + thrift + URL https://github.com/apache/thrift/archive/refs/tags/v${THRIFT_VERSION}.tar.gz + UPDATE_COMMAND "" + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${STAGED_INSTALL_PREFIX} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE + -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 + CMAKE_CACHE_ARGS -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} + TEST_AFTER_INSTALL 0 + DOWNLOAD_NO_PROGRESS 1 + LOG_CONFIGURE 1 + LOG_BUILD 0 + LOG_INSTALL 1) + +install( + DIRECTORY ${STAGED_INSTALL_PREFIX}/ + DESTINATION . + USE_SOURCE_PERMISSIONS) diff --git a/src/jaegertracing/opentelemetry-cpp/docker/thrift/Dockerfile b/src/jaegertracing/opentelemetry-cpp/docker/thrift/Dockerfile new file mode 100644 index 000000000..2c57199f3 --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/docker/thrift/Dockerfile @@ -0,0 +1,21 @@ +ARG BASE_IMAGE=ubuntu:latest +FROM ${BASE_IMAGE} AS thrift + +ARG CORES=${nproc} +ARG THRIFT_VERSION=0.14.1 + +RUN mkdir mkdir -p /opt/third_party/thrift + +WORKDIR /opt/third_party/th + +ADD CMakeLists.txt /opt/third_party/thrift + +RUN mkdir build \ + && cd build \ + && cmake -DCMAKE_INSTALL_PREFIX=/opt/third_party/install \ + -DTHRIFT_VERSION=${THRIFT_VERSION} /opt/third_party/thrift \ + && cmake --build . -j ${CORES} --target install + +FROM scratch as final + +COPY --from=thrift /opt/third_party/install / diff --git a/src/jaegertracing/opentelemetry-cpp/docker/ubuntu14.04/Dockerfile b/src/jaegertracing/opentelemetry-cpp/docker/ubuntu14.04/Dockerfile new file mode 100644 index 000000000..f4e8a0410 --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/docker/ubuntu14.04/Dockerfile @@ -0,0 +1,42 @@ +FROM ubuntu:14.04 +ENV DEBIAN_FRONTEND noninteractive + +## Update cache and upgrade image +RUN apt-get -y update && apt-get -y upgrade && apt-get -y dist-upgrade + +## Build environment packages +RUN apt-get install -qq -y --ignore-missing \ + apt-utils \ + automake \ + bc \ + build-essential \ + bzip2 \ + cmake \ + curl \ + git \ + libcurl4-openssl-dev \ + libssl-dev \ + make \ + pkg-config \ + python \ + sudo \ + tar \ + zip \ + unzip \ + wget \ + zlib1g-dev + +RUN mkdir -p /usr/local/bin + +## Install cmake since it's an expensive operation and best be done once +COPY ./setup-cmake.sh /usr/local/bin/setup-cmake.sh +RUN chmod +x /usr/local/bin/setup-cmake.sh +RUN /usr/local/bin/setup-cmake.sh + +## Install protobuf3 since Ubuntu 14.04 does not have protobuf3 +COPY ./setup-protobuf.sh /usr/local/bin/setup-protobuf.sh +RUN chmod +x /usr/local/bin/setup-protobuf.sh +RUN /usr/local/bin/setup-protobuf.sh + +# ENTRYPOINT bash +CMD /bin/bash diff --git a/src/jaegertracing/opentelemetry-cpp/docker/ubuntu16.04/Dockerfile b/src/jaegertracing/opentelemetry-cpp/docker/ubuntu16.04/Dockerfile new file mode 100644 index 000000000..328600f1c --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/docker/ubuntu16.04/Dockerfile @@ -0,0 +1,38 @@ +FROM ubuntu:16.04 +ENV DEBIAN_FRONTEND noninteractive + +## Update cache and upgrade image +RUN apt-get -y update && apt-get -y upgrade && apt-get -y dist-upgrade + +## Build environment packages +RUN apt-get install -qq -y --ignore-missing \ + apt-utils \ + automake \ + build-essential \ + bc \ + bzip2 \ + cmake \ + curl \ + git \ + libcurl4-openssl-dev \ + libsqlite3-dev \ + libssl-dev \ + libtool-bin \ + make \ + pkg-config \ + python \ + sudo \ + tar \ + zip \ + unzip \ + wget \ + zlib1g-dev + +## Install cmake since it's an expensive operation and best be done once +RUN mkdir -p /usr/local/bin +COPY ./setup-cmake.sh /usr/local/bin/setup-cmake.sh +RUN chmod +x /usr/local/bin/setup-cmake.sh +RUN /usr/local/bin/setup-cmake.sh + +# ENTRYPOINT bash +CMD /bin/bash diff --git a/src/jaegertracing/opentelemetry-cpp/docker/ubuntu18.04/Dockerfile b/src/jaegertracing/opentelemetry-cpp/docker/ubuntu18.04/Dockerfile new file mode 100644 index 000000000..9e41506b4 --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/docker/ubuntu18.04/Dockerfile @@ -0,0 +1,39 @@ +FROM ubuntu:18.04 +ENV DEBIAN_FRONTEND noninteractive + +## Update cache and upgrade image +RUN apt-get -y update && apt-get -y upgrade && apt-get -y dist-upgrade + +## Build environment packages +RUN apt-get install -qq -y --ignore-missing \ + apt-utils \ + automake \ + bc \ + build-essential \ + bzip2 \ + cmake \ + curl \ + git \ + libcurl4-openssl-dev \ + libssl-dev \ + libtool-bin \ + make \ + pkg-config \ + protobuf-compiler \ + libprotobuf-dev \ + python \ + sudo \ + tar \ + zip \ + unzip \ + wget \ + zlib1g-dev + +## Install cmake since it's an expensive operation and best be done once +RUN mkdir -p /usr/local/bin +COPY ./setup-cmake.sh /usr/local/bin/setup-cmake.sh +RUN chmod +x /usr/local/bin/setup-cmake.sh +RUN /usr/local/bin/setup-cmake.sh + +# ENTRYPOINT bash +CMD /bin/bash diff --git a/src/jaegertracing/opentelemetry-cpp/docker/ubuntu20.04/Dockerfile b/src/jaegertracing/opentelemetry-cpp/docker/ubuntu20.04/Dockerfile new file mode 100644 index 000000000..17dba8479 --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/docker/ubuntu20.04/Dockerfile @@ -0,0 +1,39 @@ +FROM ubuntu:20.04 +ENV DEBIAN_FRONTEND noninteractive + +## Update cache and upgrade image +RUN apt-get -y update && apt-get -y upgrade && apt-get -y dist-upgrade + +## Build environment packages +RUN apt-get install -qq -y --ignore-missing \ + apt-utils \ + automake \ + bc \ + build-essential \ + bzip2 \ + cmake \ + curl \ + git \ + libcurl4-openssl-dev \ + libssl-dev \ + libtool-bin \ + make \ + pkg-config \ + protobuf-compiler \ + libprotobuf-dev \ + python \ + sudo \ + tar \ + zip \ + unzip \ + wget \ + zlib1g-dev + +## Install cmake since it's an expensive operation and best be done once +RUN mkdir -p /usr/local/bin +COPY ./setup-cmake.sh /usr/local/bin/setup-cmake.sh +RUN chmod +x /usr/local/bin/setup-cmake.sh +RUN /usr/local/bin/setup-cmake.sh + +# ENTRYPOINT bash +CMD /bin/bash diff --git a/src/jaegertracing/opentelemetry-cpp/docker/ubuntuLatest/Dockerfile b/src/jaegertracing/opentelemetry-cpp/docker/ubuntuLatest/Dockerfile new file mode 100644 index 000000000..6a1a88388 --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/docker/ubuntuLatest/Dockerfile @@ -0,0 +1,62 @@ +FROM ubuntu:latest +ENV DEBIAN_FRONTEND=noninteractive +WORKDIR /work + +#install grpc and abseil +ARG GRPC_VERSION=v1.38.0 +RUN apt-get update && apt-get install -y build-essential autoconf libtool pkg-config cmake git libssl-dev && \ + 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" && \ + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE .. && \ + make -j${nproc} install && cd ../../.. && \ + mkdir build && cd build && \ + cmake \ + -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 && \ + cd ../.. + +#install thrift +ARG THRIFT_VERSION=0.14.1 +RUN apt-get install -y --no-install-recommends \ + libboost-all-dev \ + libevent-dev \ + 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 && \ + cmake \ + -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 \ + .. && \ + make -j${nproc} install && make clean && ldconfig && \ + cd ../.. + +#install opentelemetry-cpp +RUN apt-get install -y --no-install-recommends libcurl4-openssl-dev && git clone --depth=1 https://github.com/open-telemetry/opentelemetry-cpp.git && \ + cd opentelemetry-cpp && git submodule update --init && \ + mkdir -p build && cd build && \ + cmake \ + -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 && \ + cd ../.. |