28 lines
1.1 KiB
Docker
Executable File
28 lines
1.1 KiB
Docker
Executable File
FROM maven:3.9.9-eclipse-temurin-17@sha256:f58d59b6273e785ac0a4477f6e9b5ba1d7731c75b906c0f7b34076f1851318cc AS build
|
|
WORKDIR /app
|
|
COPY pom.xml .
|
|
RUN mvn dependency:go-offline -B
|
|
COPY src ./src
|
|
RUN mvn package -DskipTests -B
|
|
|
|
ARG OTEL_JAVAAGENT_VERSION=2.28.1
|
|
ARG OTEL_JAVAAGENT_SHA256=faa89bdeebf9b1f52be4a4374689176717b02a59df2d8f8b6eb9aa39f9292589
|
|
RUN mvn org.apache.maven.plugins:maven-dependency-plugin:3.6.1:copy \
|
|
-Dartifact=io.opentelemetry.javaagent:opentelemetry-javaagent:${OTEL_JAVAAGENT_VERSION} \
|
|
-DoutputDirectory=/app \
|
|
-Dmdep.stripVersion=true \
|
|
-B \
|
|
&& echo "${OTEL_JAVAAGENT_SHA256} /app/opentelemetry-javaagent.jar" | sha256sum -c -
|
|
|
|
FROM eclipse-temurin:17-jre-alpine@sha256:02320dd4ce20e243dfb915c686089cf9315c763084fafbb12d5c9993aee18b57
|
|
|
|
# Best practice: run as a non-root user
|
|
RUN addgroup -S spring && adduser -S spring -G spring
|
|
USER spring:spring
|
|
|
|
WORKDIR /app
|
|
COPY --from=build /app/target/app.jar app.jar
|
|
COPY --from=build /app/opentelemetry-javaagent.jar opentelemetry-javaagent.jar
|
|
EXPOSE 8080
|
|
ENTRYPOINT ["java", "-javaagent:opentelemetry-javaagent.jar", "-jar", "app.jar"]
|