deployment_files
This commit is contained in:
parent
46cee6e705
commit
8840360c85
|
@ -1,97 +1,95 @@
|
|||
# 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
|
||||
|
||||
|
||||
|
||||
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://realnet.cdas4e08uugj.us-east-1.rds.amazonaws.com:3306/realnet_CNSBENEW?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
|
||||
# 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=<your-client-id>
|
||||
spring.security.oauth2.client.registration.linkedin.clientSecret=<your-client-secret>
|
||||
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
|
||||
|
||||
|
||||
|
||||
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://pro103ab-db-d:3306/db?createDatabaseIfNotExist=true
|
||||
spring.datasource.username=root
|
||||
spring.datasource.password=root
|
||||
|
||||
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=<your-client-id>
|
||||
spring.security.oauth2.client.registration.linkedin.clientSecret=<your-client-secret>
|
||||
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
|
|
@ -11,6 +11,11 @@ export const environment = {
|
|||
jobUrl:'http://localhost:8085', // http://realits.ml:30168/ jobprourl
|
||||
chaturl:'http://localhost:4500',
|
||||
//Deployment configs
|
||||
|
||||
|
||||
};
|
||||
|
||||
backport:'30590/pro103ab24997/back',
|
||||
backendUrl:'/pro103ab24997/back',
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -8,10 +8,11 @@ export const environment = {
|
|||
blackUrl: 'http://localhost:3000/login',
|
||||
|
||||
//Deployment configs
|
||||
|
||||
backendUrl:'http://localhost:9292',
|
||||
backport:'9292',
|
||||
|
||||
backport:'30590/pro103ab24997/back',
|
||||
backendUrl:'/pro103ab24997/back',
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
|
|
@ -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@git.io8.dev/risadmin_prod/pro103ab.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/pro103ab/pro103ab-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"]
|
|
@ -0,0 +1,37 @@
|
|||
#!/bin/bash
|
||||
PRJ_NAME=pro103ab-back-b
|
||||
DOCKER_USER=risadmin_prod
|
||||
DOCKER_PASS=$(sv get risadmin_prod dockerPassword)
|
||||
DOCKER_URL=git.io8.dev
|
||||
#********************
|
||||
REPO_NAME=pro103ab
|
||||
GITEA_USER=risadmin_prod
|
||||
GITEA_PASS=$(sv get risadmin_prod dockerPassword)
|
||||
GITEA_EMAIL=ganeshk@dekatc.com
|
||||
GIT_BRANCH=main
|
||||
DOMAIN=git.io8.dev
|
||||
#WEB-URL-PORT
|
||||
CONT_PORT=3306
|
||||
TARGET_PORT=9292
|
||||
PATH_DIR=/data/24997_1728385258798/sureops_deploy/pro103ab/sureops/pro103ab-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 "https://ops.io8.dev/sureops/suredocker/updaterepo?repoName=$REPO_NAME&packageName=$PRJ_NAME"
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
#pulling from github
|
||||
# FROM alpine/git:v2.30.1 AS code
|
||||
#ARG BUILD_ID
|
||||
#RUN echo $BUILD_ID
|
||||
#LABEL stage=builder
|
||||
#LABEL build_id=$BUILD_ID
|
||||
#RUN mkdir repo
|
||||
#WORKDIR /repo
|
||||
#RUN git clone http://risadmin:admin1234@try.gitea.io/risadmin/a_madhurtest1.git
|
||||
#******** Stage 2 - Mysql Build*********
|
||||
FROM mysql:8.0
|
||||
ENV MYSQL_ROOT_PASSWORD root
|
||||
COPY conf.d /etc/mysql/conf.d
|
||||
COPY *.sql /docker-entrypoint-initdb.d/
|
||||
#COPY --from=code /repo//data/24997_1728385258798/sureops_deploy/pro103ab/pro103ab-db-d/authsec_mysql/mysql/wf_table/backend/src/main/resources/ .
|
||||
VOLUME /var/lib/mysql
|
||||
EXPOSE 3306
|
||||
CMD ["mysqld"]
|
|
@ -0,0 +1,40 @@
|
|||
#!/bin/bash
|
||||
PRJ_NAME=pro103ab-db-d
|
||||
DOCKER_USER=risadmin_prod
|
||||
DOCKER_PASS=$(sv get risadmin_prod dockerPassword)
|
||||
DOCKER_URL=git.io8.dev
|
||||
REPO_NAME=pro103ab
|
||||
GITEA_USER=risadmin_prod
|
||||
GITEA_PASS=$(sv get risadmin_prod dockerPassword)
|
||||
GITEA_EMAIL=ganeshk@dekatc.com
|
||||
GIT_BRANCH=main
|
||||
DOMAIN=git.io8.dev
|
||||
CONT_PORT=3306
|
||||
TARGET_PORT=3306
|
||||
PATH_DIR=/data/24997_1728385258798/sureops_deploy/pro103ab/sureops/pro103ab-db-d/deployment
|
||||
|
||||
#**********************
|
||||
cd $PATH_DIR
|
||||
cp /data/24997_1728385258798/sureops_deploy/pro103ab/pro103ab-db-d/authsec_mysql/mysql/wf_table/*.sql .
|
||||
pwd
|
||||
DOCKER_TAG=1.0
|
||||
# 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 -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
|
||||
IMAGE_ID=$(docker images --format "{{.ID}}" $IMAGE_NAME)
|
||||
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
|
||||
#echo "Image $IMAGE_ID deployed in container $PRJ_NAME"
|
||||
curl -X GET "https://ops.io8.dev/sureops/suredocker/updaterepo?repoName=$REPO_NAME&packageName=$PRJ_NAME"
|
||||
docker volume prune -f
|
||||
docker network prune -f
|
||||
docker image prune -f --filter "dangling=true
|
|
@ -0,0 +1,36 @@
|
|||
# For advice on how to change settings please see
|
||||
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html
|
||||
|
||||
[mysqld]
|
||||
#
|
||||
# Remove leading # and set to the amount of RAM for the most important data
|
||||
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
|
||||
# innodb_buffer_pool_size = 128M
|
||||
#
|
||||
# Remove leading # to turn on a very important data integrity option: logging
|
||||
# changes to the binary log between backups.
|
||||
# log_bin
|
||||
#
|
||||
# Remove leading # to set options mainly useful for reporting servers.
|
||||
# The server defaults are faster for transactions and fast SELECTs.
|
||||
# Adjust sizes as needed, experiment to find the optimal values.
|
||||
# join_buffer_size = 128M
|
||||
# sort_buffer_size = 2M
|
||||
# read_rnd_buffer_size = 2M
|
||||
|
||||
# Remove leading # to revert to previous value for default_authentication_plugin,
|
||||
# this will increase compatibility with older clients. For background, see:
|
||||
# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin
|
||||
# default-authentication-plugin=mysql_native_password
|
||||
skip-host-cache
|
||||
skip-name-resolve
|
||||
datadir=/var/lib/mysql
|
||||
socket=/var/run/mysqld/mysqld.sock
|
||||
secure-file-priv=/var/lib/mysql-files
|
||||
user=mysql
|
||||
|
||||
pid-file=/var/run/mysqld/mysqld.pid
|
||||
[client]
|
||||
socket=/var/run/mysqld/mysqld.sock
|
||||
|
||||
!includedir /etc/mysql/conf.d/
|
File diff suppressed because one or more lines are too long
|
@ -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@git.io8.dev/risadmin_prod/pro103ab.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/pro103ab/pro103ab-front-f/authsec_angular_bootsstrap/angular-bootstrap/package.json /repo/pro103ab/pro103ab-front-f/authsec_angular_bootsstrap/angular-bootstrap/package-lock.json ./
|
||||
RUN npm install
|
||||
COPY --from=code /repo/pro103ab/pro103ab-front-f/authsec_angular_bootsstrap/angular-bootstrap .
|
||||
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
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
#!/bin/bash
|
||||
#ac
|
||||
# Global Variables
|
||||
PRJ_NAME="pro103ab-front-f"
|
||||
DOCKER_USER="risadmin_prod"
|
||||
DOCKER_PASS=$(sv get "risadmin_prod" dockerPassword)
|
||||
DOCKER_URL="git.io8.dev"
|
||||
REPO_NAME="pro103ab"
|
||||
GITEA_USER="risadmin_prod"
|
||||
GITEA_PASS=$(sv get "risadmin_prod" dockerPassword)
|
||||
GITEA_EMAIL="ganeshk@dekatc.com"
|
||||
GIT_BRANCH="main"
|
||||
DOMAIN="git.io8.dev"
|
||||
CONT_PORT=30167
|
||||
TARGET_PORT=80
|
||||
PATH_DIR="/data/24997_1728385258798/sureops_deploy/pro103ab/sureops/pro103ab-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 "https://ops.io8.dev/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
|
Loading…
Reference in New Issue