From 8b7bf2c81f212d5d9bb5f8b60f4953b6203fe051 Mon Sep 17 00:00:00 2001 From: risadmin_prod Date: Mon, 28 Jul 2025 09:41:15 +0000 Subject: [PATCH] deployment_files --- .../src/main/resources/application.properties | 198 +++++++++--------- .../src/environments/environment.prod.ts | 4 +- .../src/environments/environment.ts | 4 +- .../deployment/Dockerfile | 33 +++ .../deployment/build.sh | 37 ++++ .../deployment/Dockerfile | 30 +++ .../deployment/build.sh | 71 +++++++ 7 files changed, 273 insertions(+), 104 deletions(-) create mode 100755 sureops/orderestimation014-back-b/deployment/Dockerfile create mode 100755 sureops/orderestimation014-back-b/deployment/build.sh create mode 100755 sureops/orderestimation014-front-f/deployment/Dockerfile create mode 100755 sureops/orderestimation014-front-f/deployment/build.sh diff --git a/orderestimation014-back-b/authsec_springboot/backend/src/main/resources/application.properties b/orderestimation014-back-b/authsec_springboot/backend/src/main/resources/application.properties index a5446d1..59a531c 100644 --- a/orderestimation014-back-b/authsec_springboot/backend/src/main/resources/application.properties +++ b/orderestimation014-back-b/authsec_springboot/backend/src/main/resources/application.properties @@ -1,100 +1,98 @@ -# File is used by sprigboot -server.contextPath=/* -server.port=9292 -spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/webui/ - -spring.banner.location=classpath:banner_txt.txt - -#Temporary disable security to enable it remove this -#security.ignored=/** - -springfox.documentation.swagger.v2.path=/api-docs -spring.jackson.date-format=yyyy-MM-dd - -chatgpt.api.url=https://api.openai.com/v1/completions -chatgpt.api.key=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 - - - -System.Net.ServicePointManager.Expect100Continue = false; - -#spring.jpa.hibernate.ddl-auto=none -#spring.jpa.hibernate.ddl-auto=update -#spring.datasource.continue-on-error=false - -# **** MY SQL DATABASE CONNECTION **** - -spring.datasource.url=jdbc:mysql://realit-prod.cj462uqsa4mz.ap-south-1.rds.amazonaws.com:3306/realnet_CNSBENEW?createDatabaseIfNotExist=true -spring.datasource.username=cnsdev -spring.datasource.password=cnsdevprod1212 - -spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver - -spring.jpa.hibernate.ddl-auto=update -spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect -# Prefix Path - -#spring.jpa.show-sql=true -spring.jpa.properties.hibernate.format_sql=true -spring.jpa.properties.hibernate.proc.param_null_passing=true - -# **********paytm dependency ****** -razorpay.api.key=rzp_test_xVnrBUjJWTEH0r -razorpay.api.secret=evTXkIFcgpVtiLa1P7M7CIox - -#***** MAIL SENDER -spring.mail.host=smtp.gmail.com -spring.mail.username=realitmailsender@gmail.com -spring.mail.password=epnmhzsccotnyozf -spring.mail.port=587 -#spring.mail.properties.mail.smtp.auth=true -spring.mail.properties.mail.smtp.starttls.enable=true -spring.mail.properties.mail.smtp.starttls.required=true - -# JACKSON -spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false - - -spring.mail.properties.mail.smtp.auth = true -spring.mail.properties.mail.smtp.socketFactory.port = 465 -spring.mail.properties.mail.smtp.socketFactory.class = javax.net.ssl.SSLSocketFactory -spring.mail.properties.mail.smtp.socketFactory.fallback = false - -#******* MULTIPART RESOLVER -spring.servlet.multipart.enabled=true -spring.servlet.multipart.max-file-size=100MB -spring.servlet.multipart.max-request-size=100MB - -#***************OAUTH2 SOCIAL LOGIN ********* -# Social login provider props -spring.security.oauth2.client.registration.google.clientId=437023664181-0lm0ipgip3qbhga4nd7o4128jv4g2nv9.apps.googleusercontent.com -spring.security.oauth2.client.registration.google.clientSecret=I1HPyUqdJ9UONu45W1_wwfww -spring.security.oauth2.client.registration.google.scope=profile, email - - -spring.security.oauth2.client.registration.linkedin.clientId= -spring.security.oauth2.client.registration.linkedin.clientSecret= -spring.security.oauth2.client.registration.linkedin.client-authentication-method=post -spring.security.oauth2.client.registration.linkedin.authorization-grant-type=authorization_code -spring.security.oauth2.client.registration.linkedin.scope=r_liteprofile, r_emailaddress -spring.security.oauth2.client.registration.linkedin.redirect-uri={baseUrl}/login/oauth2/code/{registrationId} -spring.security.oauth2.client.registration.linkedin.client-name=Linkedin -spring.security.oauth2.client.registration.linkedin.provider=linkedin -spring.security.oauth2.client.provider.linkedin.authorization-uri=https://www.linkedin.com/oauth/v2/authorization -spring.security.oauth2.client.provider.linkedin.token-uri=https://www.linkedin.com/oauth/v2/accessToken -spring.security.oauth2.client.provider.linkedin.user-info-uri=https://api.linkedin.com/v2/me -spring.security.oauth2.client.provider.linkedin.user-name-attribute=id -linkedin.email-address-uri=https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~)) -app.auth.tokenSecret=926D96C90030DD58429D2751AC1BDBBC -app.auth.tokenExpirationMsec=864000000 - # After successfully authenticating with the OAuth2 Provider, - # we'll be generating an auth token for the user and sending the token to the - # redirectUri mentioned by the frontend client in the /oauth2/authorization request. - # We're not using cookies because they won't work well in mobile clients. -app.oauth2.authorizedRedirectUris=http://localhost:8081/oauth2/redirect,myandroidapp://oauth2/redirect,myiosapp://oauth2/redirect - - -projectPath=@project.basedir@ -angularProjectPath=@project.basedir@/webui - - +# File is used by sprigboot +server.contextPath=/* +server.port=9292 +spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/webui/ + +spring.banner.location=classpath:banner_txt.txt + +#Temporary disable security to enable it remove this +#security.ignored=/** + +springfox.documentation.swagger.v2.path=/api-docs +spring.jackson.date-format=yyyy-MM-dd + +chatgpt.api.url=https://api.openai.com/v1/completions +chatgpt.api.key=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 + + + +System.Net.ServicePointManager.Expect100Continue = false; + +#spring.jpa.hibernate.ddl-auto=none +#spring.jpa.hibernate.ddl-auto=update +#spring.datasource.continue-on-error=false + +# **** MY SQL DATABASE CONNECTION **** + +spring.datasource.url=jdbc:mysql://157.66.191.31:3306/orderestimationdb?createDatabaseIfNotExist=true +spring.datasource.username=cnsdev +spring.datasource.password=cnsdev2407 + +spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver + +spring.jpa.hibernate.ddl-auto=update +spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect +server.servlet.contextPath=/back + +#spring.jpa.show-sql=true +spring.jpa.properties.hibernate.format_sql=true +spring.jpa.properties.hibernate.proc.param_null_passing=true + +# **********paytm dependency ****** +razorpay.api.key=rzp_test_xVnrBUjJWTEH0r +razorpay.api.secret=evTXkIFcgpVtiLa1P7M7CIox + +#***** MAIL SENDER +spring.mail.host=smtp.gmail.com +spring.mail.username=realitmailsender@gmail.com +spring.mail.password=epnmhzsccotnyozf +spring.mail.port=587 +#spring.mail.properties.mail.smtp.auth=true +spring.mail.properties.mail.smtp.starttls.enable=true +spring.mail.properties.mail.smtp.starttls.required=true + +# JACKSON +spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false + + +spring.mail.properties.mail.smtp.auth = true +spring.mail.properties.mail.smtp.socketFactory.port = 465 +spring.mail.properties.mail.smtp.socketFactory.class = javax.net.ssl.SSLSocketFactory +spring.mail.properties.mail.smtp.socketFactory.fallback = false + +#******* MULTIPART RESOLVER +spring.servlet.multipart.enabled=true +spring.servlet.multipart.max-file-size=100MB +spring.servlet.multipart.max-request-size=100MB + +#***************OAUTH2 SOCIAL LOGIN ********* +# Social login provider props +spring.security.oauth2.client.registration.google.clientId=437023664181-0lm0ipgip3qbhga4nd7o4128jv4g2nv9.apps.googleusercontent.com +spring.security.oauth2.client.registration.google.clientSecret=I1HPyUqdJ9UONu45W1_wwfww +spring.security.oauth2.client.registration.google.scope=profile, email + + +spring.security.oauth2.client.registration.linkedin.clientId= +spring.security.oauth2.client.registration.linkedin.clientSecret= +spring.security.oauth2.client.registration.linkedin.client-authentication-method=post +spring.security.oauth2.client.registration.linkedin.authorization-grant-type=authorization_code +spring.security.oauth2.client.registration.linkedin.scope=r_liteprofile, r_emailaddress +spring.security.oauth2.client.registration.linkedin.redirect-uri={baseUrl}/login/oauth2/code/{registrationId} +spring.security.oauth2.client.registration.linkedin.client-name=Linkedin +spring.security.oauth2.client.registration.linkedin.provider=linkedin +spring.security.oauth2.client.provider.linkedin.authorization-uri=https://www.linkedin.com/oauth/v2/authorization +spring.security.oauth2.client.provider.linkedin.token-uri=https://www.linkedin.com/oauth/v2/accessToken +spring.security.oauth2.client.provider.linkedin.user-info-uri=https://api.linkedin.com/v2/me +spring.security.oauth2.client.provider.linkedin.user-name-attribute=id +linkedin.email-address-uri=https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~)) +app.auth.tokenSecret=926D96C90030DD58429D2751AC1BDBBC +app.auth.tokenExpirationMsec=864000000 + # After successfully authenticating with the OAuth2 Provider, + # we'll be generating an auth token for the user and sending the token to the + # redirectUri mentioned by the frontend client in the /oauth2/authorization request. + # We're not using cookies because they won't work well in mobile clients. +app.oauth2.authorizedRedirectUris=http://localhost:8081/oauth2/redirect,myandroidapp://oauth2/redirect,myiosapp://oauth2/redirect + + +projectPath=@project.basedir@ +angularProjectPath=@project.basedir@/webui \ No newline at end of file diff --git a/orderestimation014-front-f/authsec_angular/frontend/angular-clarity-master/src/environments/environment.prod.ts b/orderestimation014-front-f/authsec_angular/frontend/angular-clarity-master/src/environments/environment.prod.ts index f038c84..4195a9b 100644 --- a/orderestimation014-front-f/authsec_angular/frontend/angular-clarity-master/src/environments/environment.prod.ts +++ b/orderestimation014-front-f/authsec_angular/frontend/angular-clarity-master/src/environments/environment.prod.ts @@ -10,8 +10,8 @@ export const environment = { // changeble url // port captchaSiteKey: '6LfrdSUpAAAAALkYDmnvdX3GLLCArgPWNHfXasjP', - //Deployment configs + backport:'37049/orderestimation01442526/back',backendUrl:'/orderestimation01442526/back', -}; +}; \ No newline at end of file diff --git a/orderestimation014-front-f/authsec_angular/frontend/angular-clarity-master/src/environments/environment.ts b/orderestimation014-front-f/authsec_angular/frontend/angular-clarity-master/src/environments/environment.ts index 6bfca3d..7ccce7d 100644 --- a/orderestimation014-front-f/authsec_angular/frontend/angular-clarity-master/src/environments/environment.ts +++ b/orderestimation014-front-f/authsec_angular/frontend/angular-clarity-master/src/environments/environment.ts @@ -10,7 +10,7 @@ export const environment = { // changeblelocal configs url captchaSiteKey: '6LfrdSUpAAAAALkYDmnvdX3GLLCArgPWNHfXasjP', - //Deployment configs + backport:'37049/orderestimation01442526/back',backendUrl:'/orderestimation01442526/back', -}; +}; \ No newline at end of file diff --git a/sureops/orderestimation014-back-b/deployment/Dockerfile b/sureops/orderestimation014-back-b/deployment/Dockerfile new file mode 100755 index 0000000..1b80265 --- /dev/null +++ b/sureops/orderestimation014-back-b/deployment/Dockerfile @@ -0,0 +1,33 @@ +#pulling from github + +FROM alpine/git:v2.30.1 AS code +ARG BUILD_ID +ARG GITEA_USER +ARG GITEA_PASS +RUN echo $BUILD_ID +LABEL stage=builder +LABEL build_id=$BUILD_ID +RUN mkdir repo +WORKDIR /repo +RUN git clone http://$GITEA_USER:$GITEA_PASS@157.66.191.31:3000/risadmin_prod/orderestimation014.git +#************* Stage 2 - Maven Build ************** +FROM maven:3.9.3 AS mvn +LABEL stage=builder +LABEL build=$BUILD_ID +WORKDIR /workspace/app +COPY --from=code /repo/orderestimation014/orderestimation014-back-b/authsec_springboot/backend/ /workspace/app +RUN mkdir builder/ +RUN mvn install -Dmaven.test.skip + +#******** Stage 3 - Docker Build ********* + +#FROM java:8-jdk-alpine +FROM openjdk:8-jdk-alpine +LABEL stage=app +LABEL build=$BUILD_ID +RUN mkdir /usr/app +COPY --from=mvn /workspace/app/target/*jar /usr/app/gtest.jar +RUN mkdir /usr/app/sureops +WORKDIR /usr/app +EXPOSE 9292 +ENTRYPOINT ["java", "-jar", "gtest.jar"] \ No newline at end of file diff --git a/sureops/orderestimation014-back-b/deployment/build.sh b/sureops/orderestimation014-back-b/deployment/build.sh new file mode 100755 index 0000000..ea0d478 --- /dev/null +++ b/sureops/orderestimation014-back-b/deployment/build.sh @@ -0,0 +1,37 @@ +#!/bin/bash +PRJ_NAME=orderestimation014-back-b +DOCKER_USER=risadmin_prod +DOCKER_PASS=$(sv get risadmin_prod dockerPassword) +DOCKER_URL=157.66.191.31:3000 +#******************** +REPO_NAME=orderestimation014 +GITEA_USER=risadmin_prod +GITEA_PASS=$(sv get risadmin_prod dockerPassword) +GITEA_EMAIL=ganeshk@dekatc.com +GIT_BRANCH=main +DOMAIN=157.66.191.31:3000 +#WEB-URL-PORT +CONT_PORT=3306 +TARGET_PORT=9292 +PATH_DIR=/data/42526_1753695654644/sureops_deploy/orderestimation014/sureops/orderestimation014-back-b/deployment +#********************** +cd $PATH_DIR +DOCKER_TAG=1.0 +#docker system prune -f +# Stop any existing containers with the same name and ports +docker stop $PRJ_NAME >/dev/null 2>&1 || true +docker rm $PRJ_NAME >/dev/null 2>&1 || true + +# Build and push the Docker image +DOCKER_BUILDKIT=0 docker build --no-cache -t $DOCKER_URL/$DOCKER_USER/$PRJ_NAME:$DOCKER_TAG --build-arg $GITEA_PASS --build-arg $GITEA_USER . +docker login --username=$DOCKER_USER --password=$DOCKER_PASS $DOCKER_URL +docker tag $DOCKER_URL/$DOCKER_USER/$PRJ_NAME:$DOCKER_TAG $DOCKER_URL/$DOCKER_USER/$PRJ_NAME +docker push $DOCKER_URL/$DOCKER_USER/$PRJ_NAME +docker push $DOCKER_URL/$DOCKER_USER/$PRJ_NAME:$DOCKER_TAG +docker logout $DOCKER_URL +#docker system prune -f +# Deploy the image in a Docker container +#docker run -d --name $PRJ_NAME -p $CONT_PORT:$TARGET_PORT $DOCKER_USER/$PRJ_NAME:$DOCKER_TAG + +curl -X GET "http://157.66.191.31:31170/sureops/suredocker/updaterepo?repoName=$REPO_NAME&packageName=$PRJ_NAME" + diff --git a/sureops/orderestimation014-front-f/deployment/Dockerfile b/sureops/orderestimation014-front-f/deployment/Dockerfile new file mode 100755 index 0000000..728b81e --- /dev/null +++ b/sureops/orderestimation014-front-f/deployment/Dockerfile @@ -0,0 +1,30 @@ +# Git clone +FROM alpine/git:v2.30.1 AS code +ARG BUILD_ID +ARG GITEA_USER +ARG GITEA_PASS +RUN echo $BUILD_ID +LABEL stage=builder +LABEL build_id=$BUILD_ID +RUN mkdir repo +WORKDIR /repo +RUN git clone http://$GITEA_USER:$GITEA_PASS@157.66.191.31:3000/risadmin_prod/orderestimation014.git +# angular build +FROM node:16.20.2-alpine3.18 as build +LABEL stage=app +LABEL build_id=$BUILD_ID +WORKDIR /usr/src/app +COPY --from=code /repo/orderestimation014/orderestimation014-front-f/authsec_angular/frontend/angular-clarity-master/package.json /repo/orderestimation014/orderestimation014-front-f/authsec_angular/frontend/angular-clarity-master/package-lock.json ./ +RUN npm install +COPY --from=code /repo/orderestimation014/orderestimation014-front-f/authsec_angular/frontend/angular-clarity-master . +ENV NODE_OPTIONS="--max_old_space_size=4096" +RUN npm run build + +# configuring nginx web-server + +FROM nginx:1.17.1-alpine +#COPY --from=code /repo/cns-beta/springboot/angular-clarity-master/angular-clarity-master/default.conf /etc/nginx/conf.d/default.conf +COPY --from=build /usr/src/app/dist /usr/share/nginx/html +#RUN ls -a /usr/share/nginx/html/ +EXPOSE 80 + \ No newline at end of file diff --git a/sureops/orderestimation014-front-f/deployment/build.sh b/sureops/orderestimation014-front-f/deployment/build.sh new file mode 100755 index 0000000..b6a45ec --- /dev/null +++ b/sureops/orderestimation014-front-f/deployment/build.sh @@ -0,0 +1,71 @@ +#!/bin/bash +#ac +# Global Variables +PRJ_NAME="orderestimation014-front-f" +DOCKER_USER="risadmin_prod" +DOCKER_PASS=$(sv get "risadmin_prod" dockerPassword) +DOCKER_URL="157.66.191.31:3000" +REPO_NAME="orderestimation014" +GITEA_USER="risadmin_prod" +GITEA_PASS=$(sv get "risadmin_prod" dockerPassword) +GITEA_EMAIL="ganeshk@dekatc.com" +GIT_BRANCH="main" +DOMAIN="157.66.191.31:3000" +CONT_PORT=30167 +TARGET_PORT=80 +PATH_DIR="/data/42526_1753695654644/sureops_deploy/orderestimation014/sureops/orderestimation014-front-f/deployment" +DOCKER_TAG="1.0" +MAX_RETRIES=3 +RETRY_DELAY=10 + +# Stop any existing containers with the same name and ports +docker stop "$PRJ_NAME" >/dev/null 2>&1 || true +docker rm "$PRJ_NAME" >/dev/null 2>&1 || true + +# Retry logic for Docker build +build_docker_image() { + local attempt=1 + local build_status=1 + + while [[ $attempt -le $MAX_RETRIES ]]; do + printf "Attempt %d to build Docker image...\n" "$attempt" + + DOCKER_BUILDKIT=0 docker build --no-cache \ + -t "$DOCKER_URL/$DOCKER_USER/$PRJ_NAME:$DOCKER_TAG" \ + --build-arg BUILD_ID="$DOCKER_TAG" \ + --build-arg GITEA_USER="$GITEA_USER" \ + --build-arg GITEA_PASS="$GITEA_PASS" \ + "$PATH_DIR" && build_status=0 && break + + printf "Docker build failed on attempt %d. Retrying in %d seconds...\n" "$attempt" "$RETRY_DELAY" >&2 + attempt=$((attempt + 1)) + sleep "$RETRY_DELAY" + done + + return $build_status +} + +# Build Docker image with retry logic +if ! build_docker_image; then + printf "Build process failed after %d attempts.\n" "$MAX_RETRIES" >&2 + exit 1 +fi + +# Docker login +docker login --username="$DOCKER_USER" --password="$DOCKER_PASS" "$DOCKER_URL" + +# Tag and push the Docker image +docker tag "$DOCKER_URL/$DOCKER_USER/$PRJ_NAME:$DOCKER_TAG" "$DOCKER_URL/$DOCKER_USER/$PRJ_NAME:latest" +docker push "$DOCKER_URL/$DOCKER_USER/$PRJ_NAME:latest" +docker push "$DOCKER_URL/$DOCKER_USER/$PRJ_NAME:$DOCKER_TAG" + +# Docker logout +docker logout "$DOCKER_URL" + +# Trigger repo update via curl +curl -X GET "http://157.66.191.31:31170/sureops/suredocker/updaterepo?repoName=$REPO_NAME&packageName=$PRJ_NAME" + +# Prune Docker resources +docker network prune -f +docker image prune -f --filter "dangling=true" +docker volume prune -f