summaryrefslogtreecommitdiff
path: root/src/recommendation/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'src/recommendation/Dockerfile')
-rw-r--r--src/recommendation/Dockerfile30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/recommendation/Dockerfile b/src/recommendation/Dockerfile
new file mode 100644
index 0000000..757b5f0
--- /dev/null
+++ b/src/recommendation/Dockerfile
@@ -0,0 +1,30 @@
+# Copyright The OpenTelemetry Authors
+# SPDX-License-Identifier: Apache-2.0
+
+
+FROM docker.io/library/python:3.12-alpine3.22 AS build-venv
+
+RUN apk update && \
+ apk add gcc g++ linux-headers
+
+COPY ./src/recommendation/requirements.txt requirements.txt
+
+RUN python -m venv venv && \
+ venv/bin/pip install --no-cache-dir -r requirements.txt
+
+RUN venv/bin/opentelemetry-bootstrap -a install
+
+FROM docker.io/library/python:3.12-alpine3.22
+
+COPY --from=build-venv /venv/ /venv/
+
+WORKDIR /app
+
+COPY ./src/recommendation/demo_pb2_grpc.py demo_pb2_grpc.py
+COPY ./src/recommendation/demo_pb2.py demo_pb2.py
+COPY ./src/recommendation/logger.py logger.py
+COPY ./src/recommendation/metrics.py metrics.py
+COPY ./src/recommendation/recommendation_server.py recommendation_server.py
+
+EXPOSE ${RECOMMENDATION_PORT}
+ENTRYPOINT [ "/venv/bin/opentelemetry-instrument", "/venv/bin/python", "recommendation_server.py" ]