Skip to content

Commit 0bb751e

Browse files
authored
[DOCKER] Update docker files to build all third party dependencies from the tags file (open-telemetry#3718)
1 parent 06490f9 commit 0bb751e

13 files changed

+101
-486
lines changed

ci/fix-abseil-cpp-issue-1536.patch

Lines changed: 0 additions & 23 deletions
This file was deleted.

ci/setup_grpc.sh

Lines changed: 0 additions & 154 deletions
This file was deleted.

docker/Dockerfile

Lines changed: 59 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,70 @@
11
# Copyright The OpenTelemetry Authors
22
# SPDX-License-Identifier: Apache-2.0
33

4-
ARG BASE_IMAGE=ubuntu:latest
5-
ARG GRPC_IMAGE=grpc-${BASE_IMAGE}
6-
7-
FROM ${GRPC_IMAGE} as grpc
4+
ARG BASE_IMAGE=ubuntu-latest
85

96
FROM base-${BASE_IMAGE}-dev AS otel-cpp
107

118
ARG CORES=${nproc}
12-
ARG OTEL_GIT_TAG=v1.3.0
9+
ARG OTEL_GIT_TAG="main"
10+
ARG OTEL_THIRDPARTY_TAGS_FILE="third_party_release"
11+
ARG OTEL_CMAKE_OPTIONS_CACHE_FILE="test_common/cmake/all-options-abiv1.cmake"
12+
ARG CXX_STANDARD=17
13+
ARG OTEL_THIRDPARTY_BUILD_TYPE="Release"
14+
ARG OTEL_BUILD_TYPE="Release"
15+
ARG OTEL_BUILD_SHARED_LIBS="ON"
16+
ARG OTEL_INSTALL_DIR="/opt/opentelemetry-cpp-install"
1317

14-
COPY --from=grpc / /usr/local
18+
ENV OTEL_GIT_TAG=${OTEL_GIT_TAG}
19+
ENV OTEL_THIRDPARTY_TAGS_FILE=${OTEL_THIRDPARTY_TAGS_FILE}
20+
ENV OTEL_CMAKE_OPTIONS_CACHE_FILE=${OTEL_CMAKE_OPTIONS_CACHE_FILE}
21+
ENV CXX_STANDARD=${CXX_STANDARD}
22+
ENV OTEL_THIRDPARTY_BUILD_TYPE=${OTEL_THIRDPARTY_BUILD_TYPE}
23+
ENV OTEL_BUILD_TYPE=${OTEL_BUILD_TYPE}
24+
ENV OTEL_BUILD_SHARED_LIBS=${OTEL_BUILD_SHARED_LIBS}
1525

16-
#install opentelemetry-cpp
26+
ENV OTEL_SRC_DIR="/tmp/opentelemetry-cpp"
27+
ENV OTEL_BUILD_DIR="/tmp/opentelemetry-cpp-build"
28+
ENV OTEL_THIRDPARTY_BUILD_DIR="/tmp/opentelemetry-cpp-third-party-build"
29+
ENV OTEL_INSTALL_DIR=${OTEL_INSTALL_DIR}
30+
31+
# clone the source
1732
RUN git clone --recurse-submodules -j ${CORES} --depth=1 \
18-
-b ${OTEL_GIT_TAG} https://github.com/open-telemetry/opentelemetry-cpp.git \
19-
&& cd opentelemetry-cpp \
20-
&& mkdir -p build && cd build \
33+
-b ${OTEL_GIT_TAG} https://github.com/open-telemetry/opentelemetry-cpp.git ${OTEL_SRC_DIR}
34+
35+
#install third party dependencies
36+
RUN mkdir -p ${OTEL_THIRDPARTY_BUILD_DIR} \
37+
&& cmake \
38+
-S "${OTEL_SRC_DIR}/install/cmake" \
39+
-B "${OTEL_THIRDPARTY_BUILD_DIR}" \
40+
"-DCMAKE_INSTALL_PREFIX=${OTEL_INSTALL_DIR}" \
41+
"-DCMAKE_CXX_STANDARD=${CXX_STANDARD}" \
42+
"-DCMAKE_CXX_STANDARD_REQUIRED=ON" \
43+
"-DCMAKE_CXX_EXTENSIONS=OFF" \
44+
"-DCMAKE_BUILD_TYPE=${OTEL_THIRDPARTY_BUILD_TYPE}" \
45+
"-DOTELCPP_THIRDPARTY_TAGS_FILE=${OTEL_THIRDPARTY_TAGS_FILE}" \
46+
&& cmake --build "${OTEL_THIRDPARTY_BUILD_DIR}" --clean-first -j ${CORES}
47+
48+
#install opentelemetry-cpp
49+
RUN mkdir -p ${OTEL_BUILD_DIR} \
2150
&& cmake \
22-
-DCMAKE_BUILD_TYPE=Release \
23-
-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \
24-
-DWITH_ZIPKIN=ON \
25-
-DCMAKE_INSTALL_PREFIX=/opt/third_party/install \
26-
-DBUILD_TESTING=OFF \
27-
-DWITH_OTLP_GRPC=ON \
28-
-DWITH_OTLP_HTTP=ON \
29-
-DBUILD_SHARED_LIBS=ON \
30-
.. \
31-
&& cmake --build . -j ${CORES} --target install
32-
33-
FROM scratch as final
34-
35-
COPY --from=otel-cpp /opt/third_party/install /
51+
-S "${OTEL_SRC_DIR}" \
52+
-B "${OTEL_BUILD_DIR}" \
53+
-C "${OTEL_SRC_DIR}/${OTEL_CMAKE_OPTIONS_CACHE_FILE}" \
54+
"-DCMAKE_INSTALL_PREFIX=${OTEL_INSTALL_DIR}" \
55+
"-DCMAKE_PREFIX_PATH=${OTEL_INSTALL_DIR}" \
56+
"-DCMAKE_BUILD_TYPE=${OTEL_BUILD_TYPE}" \
57+
"-DCMAKE_CXX_STANDARD=${CXX_STANDARD}" \
58+
"-DCMAKE_CXX_STANDARD_REQUIRED=ON" \
59+
"-DCMAKE_CXX_EXTENSIONS=OFF" \
60+
"-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE" \
61+
"-DBUILD_TESTING=OFF" \
62+
"-DBUILD_EXAMPLES=OFF" \
63+
"-DBUILD_SHARED_LIBS=${OTEL_BUILD_SHARED_LIBS}" \
64+
&& cmake --build "${OTEL_BUILD_DIR}" -j ${CORES} --target install
65+
66+
FROM scratch AS final
67+
68+
ARG OTEL_INSTALL_DIR
69+
70+
COPY --from=otel-cpp ${OTEL_INSTALL_DIR} /
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Copyright The OpenTelemetry Authors
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
ARG BASE_IMAGE=alpine:latest@sha256:4b7ce07002c69e8f3d704a9c5d6fd3053be500b7f1c69fc0d80990c2ad8dd412
5+
6+
FROM ${BASE_IMAGE} AS final
7+
8+
RUN apk update
9+
10+
RUN apk add --update alpine-sdk \
11+
&& apk add cmake g++ \
12+
git autoconf libtool linux-headers \
13+
openssl openssl-dev \
14+
libevent-dev
15+
16+
WORKDIR /work

docker/Dockerfile.alpine.base

Lines changed: 0 additions & 18 deletions
This file was deleted.

docker/Dockerfile.centos

Lines changed: 0 additions & 50 deletions
This file was deleted.

docker/Dockerfile.debian.deps

Lines changed: 0 additions & 37 deletions
This file was deleted.

0 commit comments

Comments
 (0)