diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..f99697f
--- /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=docker -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 06d66d8..f9aea27 100644
--- a/pom.xml
+++ b/pom.xml
@@ -451,6 +451,18 @@
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ 3.2.2
+
+
+
+ repackage
+
+
+
+
diff --git a/src/main/environment/common_ci.properties b/src/main/environment/common_ci.properties
index e0acf3b..c5dd779 100644
--- a/src/main/environment/common_ci.properties
+++ b/src/main/environment/common_ci.properties
@@ -115,3 +115,6 @@ jwt.secret=@env.JWT_SECRET_KEY@
springdoc.api-docs.enabled=@env.SWAGGER_DOC_ENABLED@
springdoc.swagger-ui.enabled=@env.SWAGGER_DOC_ENABLED@
+
+# Redis IP
+spring.redis.host=@env.REDIS_HOST@
\ No newline at end of file
diff --git a/src/main/environment/common_docker.properties b/src/main/environment/common_docker.properties
new file mode 100644
index 0000000..82239d6
--- /dev/null
+++ b/src/main/environment/common_docker.properties
@@ -0,0 +1,120 @@
+benSearchByBenIDURL=${COMMON_API_BASE_URL}beneficiary/searchUserByID
+userAuthURL=${COMMON_API_BASE_URL}user/userAuthenticate
+
+# E-aushadhi
+eaushadhiStoreStockDetailsUrl=${EAUSHADHI_URL}/rest/storeStockDetailsService/
+eaushadhiStoreStockAckUrl=${EAUSHADHI_URL}/rest/AcknowledgeStoreStockService/
+
+fhirUserName=${FHIR_USER_NAME}
+fhirPassword=${FHIR_PASSWORD}
+
+# DB Connections (MySQL)
+spring.datasource.url=${DATABASE_URL}
+spring.datasource.username=${DATABASE_USERNAME}
+spring.datasource.password=${DATABASE_PASSWORD}
+spring.datasource.driver-class-name=com.mysql.jdbc.Driver
+
+# DB Connection (Mongo DB)
+spring.data.mongodb.host=${MONGO_HOST}
+spring.data.mongodb.port=27017
+spring.data.mongodb.authentication-database=${MONGO_AUTH_DBNAME}
+spring.data.mongodb.database=${MONGO_DBNAME}
+spring.data.mongodb.username=${MONGO_USERNAME}
+spring.data.mongodb.password=${MONGO_PASSWORD}
+
+atomsFeedStartPage=1
+parentUrl=${BAHMINI_URL}
+
+atomFeedURLPatientDemographic=/openmrs/ws/atomfeed/patient/
+atomFeedURLPatientEncounter=/openmrs/ws/atomfeed/encounter/
+
+feedAuthUserName=${FEED_AUTH_URL}
+feedAuthPassword=${FEED_AUTH_PASSWORD}
+
+eAushadhiDummy=yes
+
+##NDHM ABHA API
+clientID=${NDHM_ABHA_CLIENT_ID}
+clientSecret=${NDHM_ABHA_CLIENT_SECRET_KEY}
+
+##Default ABDM Facility ID
+abdmFacilityId= ${ABDM_FACILITY_ID}
+
+ndhmuserAuthenticate=${ABDM_BASE_URL}/gateway/v0.5/sessions
+ndhmGenerateOTP=${ABDM_HEALTH_ID_BASE_URL}/api/v1/registration/mobile/generateOtp
+ndhmVerifyOTP=${ABDM_HEALTH_ID_BASE_URL}/api/v1/registration/mobile/verifyOtp
+ndhmCreateHealthID=${ABDM_HEALTH_ID_BASE_URL}/api/v1/registration/mobile/createHealthId
+
+## ABHA with aadhaar
+ndhmGenerateOTPWithAadhaar=${ABDM_HEALTH_ID_BASE_URL}/api/v1/registration/aadhaar/generateOtp
+ndhmCreateHealthIDWithAadhaar=${ABDM_HEALTH_ID_BASE_URL}/api/v1/registration/aadhaar/createHealthIdWithAadhaarOtp
+
+## ABHA Creation New APIs
+abdmVerifyOTP= ${ABDM_HEALTH_ID_BASE_URL}/api/v1/registration/aadhaar/verifyOTP
+abdmCheckAndGenerateMobileOTP= ${ABDM_HEALTH_ID_BASE_URL}/api/v2/registration/aadhaar/checkAndGenerateMobileOTP
+abdmVerifyMobileOTP= ${ABDM_HEALTH_ID_BASE_URL}/api/v1/registration/aadhaar/verifyMobileOTP
+abdmcreateHealthIdWithPreVerified= ${ABDM_HEALTH_ID_BASE_URL}/api/v1/registration/aadhaar/createHealthIdWithPreVerified
+
+
+##CareContext Creation API
+generateOTPForCareContext=${ABDM_BASE_URL}/gateway/v0.5/users/auth/init
+addCareContext = ${ABDM_BASE_URL}/gateway/v0.5/links/link/add-contexts
+validateOTPForCareContext=${ABDM_BASE_URL}/gateway/v0.5/users/auth/confirm
+
+##ABHA Card API
+## Auth init - aadhar / mobile
+generateOTP_ForCard=${ABDM_HEALTH_ID_BASE_URL}/api/v1/auth/init
+## confirm with mobile OTP
+verifyOTP_ForCard=${ABDM_HEALTH_ID_BASE_URL}/api/v1/auth/confirmWithMobileOTP
+## confirm with Aadhaar
+verifyOTP_ForCard_Aadhaar=${ABDM_HEALTH_ID_BASE_URL}/api/v1/auth/confirmWithAadhaarOtp
+## print ABHA card - PNG
+generateHealthCard=${ABDM_HEALTH_ID_BASE_URL}/api/v1/health/facility/getPngCard
+generateHealthIDCard=${ABDM_HEALTH_ID_BASE_URL}/api/v1/account/getPngCard
+
+## Generate Notify SMS once episode completed
+generateABDM_NotifySMS=${ABDM_BASE_URL}/gateway/v1/patients/sms/notify2
+
+##verifyBio
+abdmVerifyBio=${ABDM_HEALTH_ID_BASE_URL}/api/v1/registration/aadhaar/verifyBio
+abdmGenerateMobileOTP=${ABDM_HEALTH_ID_BASE_URL}/api/v1/registration/aadhaar/generateMobileOTP
+abdmConfirmAadhaarBio=${ABDM_HEALTH_ID_BASE_URL}/api/v1/auth/confirmWithAadhaarBio
+abdmAccountProfile=${ABDM_ACCOUNT_ID_BASE_URL}/api/v1/account/profile
+
+##ABDM Facility services
+getAbdmFacilityServicies= ${ABDM_HIECM_BASE_URL}/api/hiecm/gateway/v3/bridge-services
+
+##ABDM V3 APIs
+abdmV3UserAuthenticate = ${ABDM_HIECM_BASE_URL}/api/hiecm/gateway/v3/sessions
+getAuthCertPublicKey = ${ABDM_ABHA_V3_URL}/v3/profile/public/certificate
+requestOtpForEnrollment = ${ABDM_ABHA_V3_URL}/v3/enrollment/request/otp
+abhaEnrollByAadhaar = ${ABDM_ABHA_V3_URL}/v3/enrollment/enrol/byAadhaar
+printAbhaCard = ${ABDM_ABHA_V3_URL}/v3/profile/account/abha-card
+abhaLoginRequestOtp = ${ABDM_ABHA_V3_URL}/v3/profile/login/request/otp
+verifyAbhaLogin = ${ABDM_ABHA_V3_URL}/v3/profile/login/verify
+abhaProfileLoginVerifyUser = ${ABDM_ABHA_V3_URL}/v3/profile/login/verify/user
+requestAuthByAbdm = ${ABDM_ABHA_V3_URL}/v3/enrollment/auth/byAbdm
+webLoginAbhaRequestOtp = ${ABDM_PHR_URL}/login/abha/request/otp
+webLoginAbhaVerify = ${ABDM_PHR_URL}/login/abha/verify
+webLoginPhrCard = ${ABDM_PHR_URL}/login/profile/abha/phr-card
+
+x-CM-ID=${X_CM_ID}
+abhaMode=${ABHA_MODE}
+
+#logging.pattern.level=DEBUG
+logging.level.root=INFO
+logging.level.org.springframework.web=INFO
+logging.level.org.hibernate=INFO
+logging.level.com.iemr=DEBUG
+logging.level.org.springframework=INFO
+
+#ELK logging file name
+logging.path=logs/
+logging.file.name=${FHIR_API_LOGGING_FILE_NAME}
+jwt.secret=${JWT_SECRET_KEY}
+
+springdoc.api-docs.enabled=${SWAGGER_DOC_ENABLED}
+springdoc.swagger-ui.enabled=${SWAGGER_DOC_ENABLED}
+
+# Redis IP
+spring.redis.host=${REDIS_HOST}
\ No newline at end of file
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index e3f3cd8..425febb 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -27,7 +27,6 @@ spring.jpa.hibernate.format_sql=true
spring.session.store-type=redis
-spring.redis.host=localhost
spring.redis.password=
spring.redis.port=6379
## Below values are needed for extending the expiry time and extend expiry time.