From 885fc69b976806e772fa79cf228cba7aace121d8 Mon Sep 17 00:00:00 2001 From: Suraj Date: Fri, 9 May 2025 15:52:06 +0530 Subject: [PATCH 1/3] feat: add Dockerfile and update pom.xml plugin for repackage --- Dockerfile | 22 ++++++++++++++++++++++ pom.xml | 13 ++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..29e04fd --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +# --- Stage 1: Build the application using Maven --- +FROM maven:3.9.6-eclipse-temurin-17 AS build + +WORKDIR /app + +COPY . . + +# Build the application while caching Maven dependencies to speed up future builds +RUN --mount=type=cache,target=/root/.m2 \ + mvn clean package -DENV_VAR=ci -DskipTests -Dgit.skip=true + +# --- Stage 2: Run the application with a minimal JRE image --- +FROM eclipse-temurin:17-jre + +WORKDIR /app + +# Copy the built WAR file from the build stage +COPY --from=build /app/target/*.war app.war + +EXPOSE 8080 + +ENTRYPOINT ["java", "-jar", "app.war"] diff --git a/pom.xml b/pom.xml index 8396715..90a1b21 100644 --- a/pom.xml +++ b/pom.xml @@ -400,7 +400,18 @@ - + + org.springframework.boot + spring-boot-maven-plugin + 3.2.2 + + + + repackage + + + + From 5361bdd53cdf1a8def7a7056fa7a91c8d3fa0185 Mon Sep 17 00:00:00 2001 From: Suraj Date: Tue, 27 May 2025 17:11:08 +0530 Subject: [PATCH 2/3] chore: update Dockerfile and add seperate docker properties file --- .settings/org.eclipse.jdt.core.prefs | 11 ++++++++++ Dockerfile | 2 +- src/main/environment/104_ci.properties | 2 +- src/main/environment/104_docker.properties | 24 ++++++++++++++++++++++ 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 src/main/environment/104_docker.properties diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index d23d1d6..184c8b1 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -1,4 +1,9 @@ eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=javax.annotation.Nonnull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=javax.annotation.ParametersAreNonnullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=javax.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=enabled org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.methodParameters=generate org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 @@ -7,7 +12,13 @@ org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=warning +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=warning +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=enabled org.eclipse.jdt.core.compiler.processAnnotations=enabled org.eclipse.jdt.core.compiler.release=enabled org.eclipse.jdt.core.compiler.source=17 diff --git a/Dockerfile b/Dockerfile index 29e04fd..f99697f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ COPY . . # Build the application while caching Maven dependencies to speed up future builds RUN --mount=type=cache,target=/root/.m2 \ - mvn clean package -DENV_VAR=ci -DskipTests -Dgit.skip=true + mvn clean package -DENV_VAR=docker -DskipTests -Dgit.skip=true # --- Stage 2: Run the application with a minimal JRE image --- FROM eclipse-temurin:17-jre diff --git a/src/main/environment/104_ci.properties b/src/main/environment/104_ci.properties index e7c1233..c88bb3e 100644 --- a/src/main/environment/104_ci.properties +++ b/src/main/environment/104_ci.properties @@ -21,4 +21,4 @@ spring.redis.host=localhost logging.file.name=@env.HELPLINE104_API_LOGGING_FILE_NAME@ jwt.secret=@env.JWT_SECRET_KEY@ springdoc.api-docs.enabled=@env.SWAGGER_DOC_ENABLED@ -springdoc.swagger-ui.enabled=@env.SWAGGER_DOC_ENABLED@ +springdoc.swagger-ui.enabled=@env.SWAGGER_DOC_ENABLED@ \ No newline at end of file diff --git a/src/main/environment/104_docker.properties b/src/main/environment/104_docker.properties new file mode 100644 index 0000000..29b36ca --- /dev/null +++ b/src/main/environment/104_docker.properties @@ -0,0 +1,24 @@ +# local env +# DB Connections +## Primary db +spring.datasource.url=${DATABASE_URL} +spring.datasource.username=${DATABASE_USERNAME} +spring.datasource.password=${DATABASE_PASSWORD} +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver + +secondary.datasource.username=${REPORTING_DATABASE_USERNAME} +secondary.datasource.password=${REPORTING_DATABASE_PASSWORD} +secondary.datasource.url=${REPORTING_DATABASE_URL} +secondary.datasource.driver-class-name=com.mysql.cj.jdbc.Driver + +# Common Config +common-url=${COMMON_API_BASE_URL} + +### Redis IP +spring.redis.host=localhost + +#ELK logging file name +logging.file.name=${HELPLINE104_API_LOGGING_FILE_NAME} +jwt.secret=${JWT_SECRET_KEY} +springdoc.api-docs.enabled=${SWAGGER_DOC_ENABLED} +springdoc.swagger-ui.enabled=${SWAGGER_DOC_ENABLED} From 3798c077e5d5a58f190ec7e9a0298e4e54e650e1 Mon Sep 17 00:00:00 2001 From: Mithun James <1007084+drtechie@users.noreply.github.com> Date: Tue, 17 Jun 2025 12:21:23 +0530 Subject: [PATCH 3/3] fix: move redis host to env variable --- .settings/org.eclipse.jdt.core.prefs | 18 +++++++++--------- src/main/environment/104_ci.properties | 2 +- src/main/environment/104_docker.properties | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index 184c8b1..5ac5ec7 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -1,9 +1,9 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore -org.eclipse.jdt.core.compiler.annotation.nonnull=javax.annotation.Nonnull -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=javax.annotation.ParametersAreNonnullByDefault -org.eclipse.jdt.core.compiler.annotation.nullable=javax.annotation.Nullable -org.eclipse.jdt.core.compiler.annotation.nullanalysis=enabled +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.methodParameters=generate org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 @@ -12,13 +12,13 @@ org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error org.eclipse.jdt.core.compiler.problem.nullReference=warning -org.eclipse.jdt.core.compiler.problem.nullSpecViolation=warning -org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=ignore -org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning -org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled org.eclipse.jdt.core.compiler.processAnnotations=enabled org.eclipse.jdt.core.compiler.release=enabled org.eclipse.jdt.core.compiler.source=17 diff --git a/src/main/environment/104_ci.properties b/src/main/environment/104_ci.properties index 2443c86..657944e 100644 --- a/src/main/environment/104_ci.properties +++ b/src/main/environment/104_ci.properties @@ -15,7 +15,7 @@ secondary.datasource.driver-class-name=com.mysql.cj.jdbc.Driver common-url=@env.COMMON_API_BASE_URL@ ### Redis IP -spring.redis.host=localhost +spring.redis.host=@env.REDIS_HOST@ #ELK logging file name logging.path=logs/ diff --git a/src/main/environment/104_docker.properties b/src/main/environment/104_docker.properties index 2ef286a..c6a56c4 100644 --- a/src/main/environment/104_docker.properties +++ b/src/main/environment/104_docker.properties @@ -15,7 +15,7 @@ secondary.datasource.driver-class-name=com.mysql.cj.jdbc.Driver common-url=${COMMON_API_BASE_URL} ### Redis IP -spring.redis.host=localhost +spring.redis.host=${REDIS_HOST} #ELK logging file name logging.file.name=${HELPLINE104_API_LOGGING_FILE_NAME}