Skip to content

Commit 4b42c76

Browse files
rogercollgithub-actions
authored and
github-actions
committed
feat: add Elastic's dockerfiles for Java services
1 parent d6db5fd commit 4b42c76

File tree

3 files changed

+50
-1
lines changed

3 files changed

+50
-1
lines changed

.github/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
The following guide describes how to setup the OpenTelemetry demo with Elastic Observability using [Docker compose](#docker-compose) or [Kubernetes](#kubernetes). This fork introduces several changes to the agents used in the demo:
55

6-
- The Java agent within the [Ad](../src/adservice/Dockerfile#L27) and [Fraud Detection](../src/frauddetectionservice/Dockerfile#L21) services have been replaced with the Elastic distribution of the OpenTelemetry Java Agent. You can find more information about the Elastic distribution in [this blog post](https://www.elastic.co/observability-labs/blog/elastic-distribution-opentelemetry-java-agent).
6+
- The Java agent within the [Ad](../src/adservice/Dockerfile.elastic) and [Fraud Detection](../src/frauddetectionservice/Dockerfile.elastic) services have been replaced with the Elastic distribution of the OpenTelemetry Java Agent. You can find more information about the Elastic distribution in [this blog post](https://www.elastic.co/observability-labs/blog/elastic-distribution-opentelemetry-java-agent).
77

88
## Docker compose
99

src/adservice/Dockerfile.elastic

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
FROM eclipse-temurin:21-jdk as builder
2+
3+
WORKDIR /usr/src/app/
4+
5+
COPY ./src/adservice/gradlew* ./src/adservice/settings.gradle* ./src/adservice/build.gradle ./
6+
COPY ./src/adservice/gradle ./gradle
7+
8+
RUN ./gradlew
9+
RUN ./gradlew downloadRepos
10+
11+
COPY ./src/adservice/ ./
12+
COPY ./pb/ ./proto
13+
RUN ./gradlew installDist -PprotoSourceDir=./proto
14+
15+
# -----------------------------------------------------------------------------
16+
17+
FROM eclipse-temurin:21-jre
18+
19+
ARG version=0.3.2
20+
WORKDIR /usr/src/app/
21+
22+
COPY --from=builder /usr/src/app/ ./
23+
ADD --chmod=644 https://repo1.maven.org/maven2/co/elastic/otel/elastic-otel-javaagent/$version/elastic-otel-javaagent-$version.jar /usr/src/app/opentelemetry-javaagent.jar
24+
ENV JAVA_TOOL_OPTIONS=-javaagent:/usr/src/app/opentelemetry-javaagent.jar
25+
ENV ELASTIC_OTEL_INFERRED_SPANS_ENABLED=true
26+
27+
EXPOSE ${AD_SERVICE_PORT}
28+
ENTRYPOINT [ "./build/install/opentelemetry-demo-ad-service/bin/AdService" ]
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
FROM gradle:8-jdk17 AS builder
2+
3+
WORKDIR /usr/src/app/
4+
5+
COPY ./src/frauddetectionservice/ ./
6+
COPY ./pb/ ./src/main/proto/
7+
RUN gradle shadowJar
8+
9+
# -----------------------------------------------------------------------------
10+
11+
FROM gcr.io/distroless/java17-debian11
12+
13+
ARG version=0.3.2
14+
WORKDIR /usr/src/app/
15+
16+
COPY --from=builder /usr/src/app/build/libs/frauddetectionservice-1.0-all.jar ./
17+
ADD --chmod=644 https://repo1.maven.org/maven2/co/elastic/otel/elastic-otel-javaagent/$version/elastic-otel-javaagent-$version.jar /usr/src/app/opentelemetry-javaagent.jar
18+
ENV JAVA_TOOL_OPTIONS=-javaagent:/app/opentelemetry-javaagent.jar
19+
ENV ELASTIC_OTEL_INFERRED_SPANS_ENABLED=true
20+
21+
ENTRYPOINT [ "java", "-jar", "frauddetectionservice-1.0-all.jar" ]

0 commit comments

Comments
 (0)