|
1 | | -FROM openjdk:11 |
| 1 | +FROM openjdk:11-jdk-slim |
2 | 2 |
|
3 | 3 | ARG EXECUTABLE_JAR |
| 4 | +ARG SERVICE_NAME |
| 5 | +ARG SERVICE_VERSION |
| 6 | +ENV SERVICE_NAME ${SERVICE_NAME} |
| 7 | +ENV SERVICE_VERSION ${SERVICE_VERSION} |
| 8 | +ENV DUMPS_DIR /opt/scalecube/dumps |
| 9 | +ENV LOGS_DIR /opt/scalecube/logs |
| 10 | +ENV JMX_PORT 5678 |
| 11 | +ENV LOG4J_CONFIGURATION_FILE ${LOG4J_CONFIGURATION_FILE:-log4j2-benchmarks.xml} |
| 12 | +ENV PRINT_FLAGS_FINAL ${PRINT_FLAGS_FINAL:-"-XX:+PrintFlagsFinal"} |
| 13 | + |
| 14 | +EXPOSE $JMX_PORT |
4 | 15 |
|
5 | 16 | WORKDIR /opt/scalecube |
6 | 17 |
|
7 | | -ENV DEFAULT_JAVA_OPTS="-server \ |
8 | | --XX:+DisableExplicitGC \ |
| 18 | +RUN mkdir -p $DUMPS_DIR |
| 19 | +RUN mkdir -p $LOGS_DIR |
| 20 | + |
| 21 | +ENV DEFAULT_JAVA_OPTS="\ |
| 22 | +-Xlog:gc*,safepoint:$LOGS_DIR/gc.log \ |
| 23 | +-Xlog:os+container=info \ |
| 24 | +-XX:InitialRAMPercentage=50 \ |
| 25 | +-XX:MinRAMPercentage=50 \ |
| 26 | +-XX:MaxRAMPercentage=70 \ |
| 27 | +-XX:NativeMemoryTracking=detail \ |
| 28 | +-XX:+HeapDumpOnOutOfMemoryError \ |
| 29 | +-XX:HeapDumpPath=$DUMPS_DIR/$SERVICE_NAME-oom.hprof \ |
| 30 | +-Djava.net.preferIPv4Stack=true \ |
9 | 31 | -Dsun.rmi.dgc.client.gcInterval=3600000 \ |
10 | | --Dsun.rmi.dgc.server.gcInterval=3600000" |
11 | | - |
12 | | -ENV DEFAULT_JMX_OPTS="-Dcom.sun.management.jmxremote \ |
13 | | --Dcom.sun.management.jmxremote.port=5678 \ |
14 | | --Dcom.sun.management.jmxremote.rmi.port=5678 \ |
| 32 | +-Dsun.rmi.dgc.server.gcInterval=3600000 \ |
| 33 | +-Djava.rmi.server.hostname=127.0.0.1 \ |
| 34 | +-Dcom.sun.management.jmxremote \ |
15 | 35 | -Dcom.sun.management.jmxremote.authenticate=false \ |
16 | 36 | -Dcom.sun.management.jmxremote.ssl=false \ |
17 | 37 | -Dcom.sun.management.jmxremote.local.only=false \ |
18 | | --Djava.rmi.server.hostname=127.0.0.1" |
19 | | - |
20 | | -ENV DEFAULT_OOM_OPTS="-XX:+HeapDumpOnOutOfMemoryError \ |
21 | | --XX:HeapDumpPath=dumps/oom_pid<pid>_`date`.hprof \ |
22 | | --XX:+UseGCOverheadLimit" |
| 38 | +-XX:+AlwaysActAsServerClassMachine \ |
| 39 | +-XX:+UnlockExperimentalVMOptions \ |
| 40 | +-XX:+TrustFinalNonStaticFields \ |
| 41 | +-XX:+UnlockDiagnosticVMOptions \ |
| 42 | +-XX:GuaranteedSafepointInterval=300000 \ |
| 43 | +-XX:BiasedLockingStartupDelay=0" |
23 | 44 |
|
24 | 45 | COPY target/lib lib |
25 | | -COPY target/${EXECUTABLE_JAR}.jar benchmarks.jar |
26 | | - |
27 | | -# profiler agent port |
28 | | -EXPOSE 10001 |
29 | | - |
30 | | -# jmx server port |
31 | | -EXPOSE 5678 |
| 46 | +COPY target/${EXECUTABLE_JAR}.jar app.jar |
32 | 47 |
|
33 | | -CMD exec java \ |
| 48 | +ENTRYPOINT exec java \ |
| 49 | +$PRINT_FLAGS_FINAL \ |
34 | 50 | $DEFAULT_JAVA_OPTS \ |
35 | 51 | $JAVA_OPTS \ |
36 | 52 | $DEFAULT_JMX_OPTS \ |
37 | 53 | $DEFAULT_OOM_OPTS \ |
38 | | --Dlog4j.configurationFile=log4j2-benchmarks.xml \ |
| 54 | +-Dcom.sun.management.jmxremote.port=$JMX_PORT \ |
| 55 | +-Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT \ |
| 56 | +-Dlog4j.configurationFile=$LOG4J_CONFIGURATION_FILE \ |
| 57 | +-Dlog4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector \ |
39 | 58 | -cp benchmarks.jar $PROGRAM_ARGS |
0 commit comments