FROM maven:3.9-eclipse-temurin-17 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 # 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"]