Added docker with apm

This commit is contained in:
Mikhail Trofimov 2025-07-08 15:38:19 +03:00
parent 7c6a0c1696
commit 0ac6b9fdef
7 changed files with 181 additions and 2 deletions

17
Dockerfile Normal file
View file

@ -0,0 +1,17 @@
FROM eclipse-temurin:17-jre-alpine
MAINTAINER ru.nbch
RUN apk add gcompat bash
VOLUME /opt/app/logs
VOLUME /opt/app/reports
WORKDIR /opt/app
COPY maven/elastic-apm-agent-1.45.0.jar /opt/app/elastic-apm-agent.jar
COPY maven/credit-tracker.jar /opt/app/credit-tracker.jar
COPY maven/start-credit-tracker.sh /opt/app/start-credit-tracker.sh
COPY maven/credit-tracker.properties /opt/app/credit-tracker.properties
COPY maven/monitoring-request.xsd /opt/app/monitoring-request.xsd
COPY maven/signal-package.xsd /opt/app/signal-package.xsd
RUN chmod +x /opt/app/start-credit-tracker.sh
ENTRYPOINT ["/opt/app/start-credit-tracker.sh"]

Binary file not shown.

View file

@ -30,7 +30,9 @@ ct.signals-root-uri=http://10.230.227.102:11094/signalRUalfa/
ct.signals-token=gttcHxwcGojoAvZK ct.signals-token=gttcHxwcGojoAvZK
ct.signals-user=0001ZZ000001 ct.signals-user=0001ZZ000001
ct.load-dir=D:\\folder_name\\signals ct.load-dir=/opt/app/reports
#ct.load-dir=D:\\folder_name\\signals
# min # min
ct.monitoring-interval=15 ct.monitoring-interval=15
# days # days

View file

@ -0,0 +1,52 @@
#commons
APP_VERSION=1.0
REGISTRY_URL=localhost:5000
JMX_PORT=
JMX_HOSTNAME=
#volumes
REPORT_DIR=D:\folder_name\signals
LOGS_DIR=D:\folder_name\signals\logs
#APM settings
APM_SERVICE_NAME=credit-tracker
APM_SERVER_URLS=test
APM_ENVIRONMENT=test
APM_SERVICE_NODE_NAME=test
APM_SERVICE_VERSION=test
server.port=8099
# datasources
# indic
ct.indic-data-source-settings.driver=com.ibm.db2.jcc.DB2Driver
ct.indic-data-source-settings.url=jdbc:db2://10.230.227.101:2668/cprosd22:currentSchema=INDIC;
ct.indic-data-source-settings.username=tester
ct.indic-data-source-settings.password=tester
# signal
ct.signal-data-source-settings.driver=org.postgresql.Driver
ct.signal-data-source-settings.url=jdbc:postgresql://10.200.200.133:5432/credit_tracker
ct.signal-data-source-settings.username=credit_tracker_user
ct.signal-data-source-settings.password=
# scoring
ct.scoring-data-source-settings.driver=com.ibm.db2.jcc.DB2Driver
ct.scoring-data-source-settings.url=jdbc:db2://10.230.227.101:2668/cprosd22:currentSchema=TEST_2_INDIC;
ct.scoring-data-source-settings.username=tester
ct.scoring-data-source-settings.password=tester
spring.servlet.multipart.max-file-size=2048MB
spring.servlet.multipart.max-request-size=2048MB
ct.signals-root-uri=http://10.230.227.102:11094/signalRUalfa/
ct.signals-token=gttcHxwcGojoAvZK
ct.signals-user=0001ZZ000001
# min
ct.monitoring-interval=15
# days
ct.update-flags-interval=1
ct.days-to-update-flags=30

View file

@ -0,0 +1,17 @@
services:
credit-tracker:
image: ${REGISTRY_URL}/credit-tracker:${APP_VERSION}
container_name: credit-tracker
restart: always
volumes:
- ${LOGS_DIR}:/opt/app/logs
- ${REPORT_DIR}:/opt/app/reports
environment:
- TZ=Europe/Moscow
- APM_SERVICE_NAME=${APM_SERVICE_NAME}
- APM_SERVER_URLS=${APM_SERVER_URLS}
- APM_ENVIRONMENT=${APM_ENVIRONMENT}
- APM_SERVICE_NODE_NAME=${APM_SERVICE_NODE_NAME}
- APM_SERVICE_VERSION=${APP_VERSION}
- JMX_PORT=${JMX_PORT}
- JMX_HOSTNAME="${JMX_HOSTNAME}

63
pom.xml
View file

@ -9,7 +9,7 @@
<relativePath/> <!-- lookup parent from repository --> <relativePath/> <!-- lookup parent from repository -->
</parent> </parent>
<groupId>ru.nbch</groupId> <groupId>ru.nbch</groupId>
<artifactId>credit_tracker</artifactId> <artifactId>credit-tracker</artifactId>
<version>1.0</version> <version>1.0</version>
<name>credit_tracker</name> <name>credit_tracker</name>
<description>Credit Tracker Application</description> <description>Credit Tracker Application</description>
@ -18,6 +18,8 @@
<java.version>17</java.version> <java.version>17</java.version>
<git.info.prefix>git_info</git.info.prefix> <git.info.prefix>git_info</git.info.prefix>
<git.info.filename>git.properties</git.info.filename> <git.info.filename>git.properties</git.info.filename>
<registry.url>10.230.238.56:5000</registry.url>
<!-- <registry.url>rh8-vm3.nbki.msk:5000</registry.url>-->
</properties> </properties>
<dependencies> <dependencies>
@ -164,6 +166,65 @@
</excludes> </excludes>
</configuration> </configuration>
</plugin> </plugin>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.45.0</version>
<executions>
<execution>
<id>Build and deploy docker container</id>
<phase>install</phase>
<goals>
<goal>build</goal>
<goal>push</goal>
</goals>
</execution>
</executions>
<configuration>
<images>
<image>
<name>${project.artifactId}:${project.version}</name>
<registry>${registry.url}</registry>
<build>
<dockerFile>${project.basedir}/Dockerfile</dockerFile>
<assembly>
<inline>
<files>
<file>
<source>${project.build.directory}/${project.build.finalName}.jar</source>
<outputDirectory>.</outputDirectory>
</file>
<file>
<source>${project.basedir}/apm-agent/elastic-apm-agent-1.45.0.jar</source>
<outputDirectory>.</outputDirectory>
</file>
<file>
<source>${project.basedir}/start-credit-tracker.sh</source>
<outputDirectory>.</outputDirectory>
</file>
<file>
<source>${project.basedir}/credit-tracker.properties</source>
<outputDirectory>.</outputDirectory>
</file>
<file>
<source>${project.basedir}/monitoring-request.xsd</source>
<outputDirectory>.</outputDirectory>
</file>
<file>
<source>${project.basedir}/signal-package.xsd</source>
<outputDirectory>.</outputDirectory>
</file>
</files>
</inline>
</assembly>
<tags>
<tag>${project.version}</tag>
</tags>
</build>
</image>
</images>
</configuration>
</plugin>
</plugins> </plugins>
</build> </build>

30
start-credit-tracker.sh Normal file
View file

@ -0,0 +1,30 @@
#!/bin/sh
export APP_JMX_PORT="${JMX_PORT:-11001}"
export APP_JMX_HOSTNAME="${JMX_HOSTNAME:-localhost}"
echo "Запуск Credit Tracker"
exec java \
-Xmx8G \
-Xms4G \
-javaagent:/opt/app/elastic-apm-agent.jar \
-XX:+UseZGC \
-Delastic.apm.service_name="${APM_SERVICE_NAME}" \
-Delastic.apm.server_urls="${APM_SERVER_URLS}" \
-Delastic.apm.application_packages=ru.nbch \
-Delastic.apm.environment="${APM_ENVIRONMENT}" \
-Delastic.apm.service_node_name="${APM_SERVICE_NODE_NAME}" \
-Delastic.apm.hostname="${APM_SERVICE_NODE_NAME}" \
-Delastic.apm.service_version="${APM_SERVICE_VERSION}" \
-Delastic.apm.enable_log_correlation=true \
-Delastic.apm.stack_trace_limit=0 \
-Delastic.apm.span_stack_trace_min_duration=-1ms \
-Dlog4j2.formatMsgNoLookups=true \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.port="$APP_JMX_PORT" \
-Dcom.sun.management.jmxremote.rmi.port="$APP_JMX_PORT" \
-Djava.rmi.server.hostname="$APP_JMX_HOSTNAME" \
-jar credit-tracker.jar