summaryrefslogtreecommitdiff
path: root/src/currency/Dockerfile
diff options
context:
space:
mode:
authorSaumit <justsaumit@protonmail.com>2025-09-27 02:14:26 +0530
committerSaumit <justsaumit@protonmail.com>2025-09-27 02:14:26 +0530
commit82e03978b89938219958032efb1448cc76baa181 (patch)
tree626f3e54d52ecd49be0ed3bee30abacc0453d081 /src/currency/Dockerfile
Initial snapshot - OpenTelemetry demo 2.1.3 -f
Diffstat (limited to 'src/currency/Dockerfile')
-rw-r--r--src/currency/Dockerfile58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/currency/Dockerfile b/src/currency/Dockerfile
new file mode 100644
index 0000000..60f7a08
--- /dev/null
+++ b/src/currency/Dockerfile
@@ -0,0 +1,58 @@
+# Copyright The OpenTelemetry Authors
+# SPDX-License-Identifier: Apache-2.0
+# Copyright 2023 The OpenTelemetry Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+FROM docker.io/library/alpine:3.21 AS base
+
+RUN apk update && \
+ apk add grpc-dev protobuf-dev
+
+FROM base AS builder
+
+RUN apk add git cmake make g++ linux-headers
+
+ARG OPENTELEMETRY_CPP_VERSION
+
+RUN git clone --depth 1 --branch v${OPENTELEMETRY_CPP_VERSION} https://github.com/open-telemetry/opentelemetry-cpp \
+ && cd opentelemetry-cpp/ \
+ && mkdir build \
+ && cd build \
+ && cmake .. -DCMAKE_CXX_STANDARD=17 -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
+ -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \
+ -DWITH_EXAMPLES=OFF -DWITH_OTLP_GRPC=ON -DWITH_ABSEIL=ON \
+ && make -j$(nproc || sysctl -n hw.ncpu || echo 1) install && cd ../..
+
+WORKDIR /currency
+
+COPY ./src/currency/build/ build/
+COPY ./src/currency/proto/ proto/
+COPY ./src/currency/src/ src/
+
+COPY ./src/currency/genproto/CMakeLists.txt genproto/CMakeLists.txt
+COPY ./src/currency/CMakeLists.txt CMakeLists.txt
+
+COPY ./pb/demo.proto proto/demo.proto
+
+RUN mkdir -p build && cd build \
+ && cmake .. \
+ && make -j$(nproc || sysctl -n hw.ncpu || echo 1) install
+
+FROM base AS release
+
+COPY --from=builder /usr/local /usr/local
+
+EXPOSE ${CURRENCY_PORT}
+
+ENTRYPOINT ["sh", "-c", "./usr/local/bin/currency ${CURRENCY_PORT}"]