github.com/grafana/pyroscope@v1.18.0/examples/tracing/java/Dockerfile (about) 1 FROM --platform=$BUILDPLATFORM sapmachine:17-jdk-headless as builder 2 3 WORKDIR /opt/app 4 5 RUN apt-get update && apt-get install ca-certificates -y && update-ca-certificates 6 7 8 9 COPY gradlew . 10 COPY gradle gradle 11 RUN ./gradlew 12 13 COPY build.gradle.kts settings.gradle.kts ./ 14 RUN ./gradlew dependencies --no-daemon 15 16 COPY src src 17 RUN ./gradlew assemble --no-daemon 18 19 20 FROM sapmachine:17-jdk-headless 21 22 RUN apt-get update && apt-get install ca-certificates -y && update-ca-certificates 23 24 ENV PYROSCOPE_APPLICATION_NAME=rideshare.java.push.app 25 ENV PYROSCOPE_FORMAT=jfr 26 ENV PYROSCOPE_PROFILING_INTERVAL=10ms 27 ENV PYROSCOPE_PROFILER_EVENT=itimer 28 ENV PYROSCOPE_PROFILER_LOCK=10ms 29 ENV PYROSCOPE_PROFILER_ALLOC=512k 30 ENV PYROSCOPE_UPLOAD_INTERVAL=15s 31 ENV PYROSCOPE_LOG_LEVEL=debug 32 ENV PYROSCOPE_SERVER_ADDRESS=http://localhost:4040 33 34 ENV OTEL_JAVAAGENT_EXTENSIONS=./pyroscope-otel.jar 35 36 ENV OTEL_PYROSCOPE_ADD_PROFILE_URL=false 37 ENV OTEL_PYROSCOPE_ADD_PROFILE_BASELINE_URL=false 38 ENV OTEL_PYROSCOPE_START_PROFILING=true 39 40 COPY --from=builder /opt/app/build/libs/rideshare-1.0-SNAPSHOT.jar /opt/app/build/libs/rideshare-1.0-SNAPSHOT.jar 41 42 WORKDIR /opt/app 43 44 ADD https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v2.15.0/opentelemetry-javaagent.jar opentelemetry-javaagent.jar 45 ADD https://github.com/grafana/pyroscope-java/releases/download/v2.1.2/pyroscope.jar pyroscope.jar 46 ADD https://github.com/grafana/otel-profiling-java/releases/download/v1.0.4/pyroscope-otel.jar pyroscope-otel.jar 47 48 EXPOSE 5000 49 50 CMD ["java", "-Dserver.port=5000", "-javaagent:./pyroscope.jar", "-javaagent:./opentelemetry-javaagent.jar", "-jar", "./build/libs/rideshare-1.0-SNAPSHOT.jar" ]