FROM registry-vpc.cn-hangzhou.aliyuncs.com/schbrain-base/jdk:11 as builder
WORKDIR app
COPY ${JAR_FILE} app.jar
RUN java -Djarmode=layertools -jar app.jar extract

FROM registry-vpc.cn-hangzhou.aliyuncs.com/schbrain-base/jdk:11
WORKDIR app
COPY --from=builder app/dependencies/ ./
COPY --from=builder app/spring-boot-loader/ ./
COPY --from=builder app/snapshot-dependencies/ ./
COPY --from=builder app/application/ ./

ENV EXT_JVM_OPTS="${JAVA_OPTS}"

ENV JVM_OPTS="-javaagent:/opt/skywalking-agent/skywalking-agent.jar=agent.service_name=${APP_NAME},collector.backend_service=skywalking-oap-server.devops:11800\
              -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false\
              -XX:MaxRAMPercentage=60 -XX:MaxMetaspaceSize=256m\
              -XX:+UseG1GC -XX:+UseStringDeduplication -XX:G1HeapRegionSize=4m -Xlog:gc*:/data/logs/gc/gc-%t.log:time,uptime:filecount=50\
              -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/heapdump/heapdump.hprof -XX:OnOutOfMemoryError=/app/dump-file-rollover.sh\
              -XX:-OmitStackTraceInFastThrow -XX:+PrintCommandLineFlags"

ENTRYPOINT exec java $JVM_OPTS $EXT_JVM_OPTS org.springframework.boot.loader.JarLauncher --spring.profiles.active=${PROFILE}
