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" ]