deployment_files

This commit is contained in:
2026-05-21 05:08:33 +00:00
parent 239f8d43cf
commit ebddf94994
6 changed files with 295 additions and 106 deletions

View File

@@ -0,0 +1,48 @@
# Use a multi-stage build
FROM farhan23432/ris_git:2.30.1 AS code
# Set build arguments and labels
ARG BUILD_ID
RUN echo $BUILD_ID
LABEL stage=builder
LABEL build_id=$BUILD_ID
# Clone repository and copy React.js code
RUN mkdir /repo
WORKDIR /repo
RUN git clone http://$GITEA_USER:$GITEA_PASS@157.66.191.31:3000/risadmin_prod/testreactdatatype.git
COPY . .
# Use a multi-stage build
FROM node:14-alpine AS builder
# Set working directory
WORKDIR /app
# Copy React.js code and install dependencies
COPY --from=code /repo/testreactdatatype/testreactdatatype-demot1-f/authsec_react_materail_ui/ .
#RUN npm install --force
# Retry logic for npm install
# Retry 5 times, waiting 10 seconds between each attempt
RUN set -e; \
for i in $(seq 1 5); do \
echo "Attempt $i: npm install"; \
npm install --force && break || \
echo "npm install failed, retrying in 10 seconds..."; \
sleep 10; \
done
RUN npm install --force react-qrcode-logo
RUN npm install --force react-toastify
RUN PUBLIC_URL=http://157.66.191.31:43214/testreactdatatype58629/demot1 npm run build
# Use Nginx as the web server
FROM nginx:alpine
# Copy build artifacts from the previous stage to serve React.js application
COPY --from=builder /app/build /usr/share/nginx/html
# Expose port 80
EXPOSE 80
# Start Nginx when the container runs
CMD ["nginx", "-g", "daemon off;"]

View File

@@ -0,0 +1,72 @@
#!/bin/bash
# Global Variables
PRJ_NAME="testreactdatatype-demot1-f"
DOCKER_USER="risadmin_prod"
DOCKER_PASS=$(sv get "risadmin_prod" dockerPassword)
DOCKER_URL="157.66.191.31:3000"
REPO_NAME="testreactdatatype"
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=40012
TARGET_PORT=3000
PATH_DIR="/data/58629_1779340071212/sureops_deploy/testreactdatatype/sureops/testreactdatatype-demot1-f/deployment"
DOCKER_TAG="1.2"
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
# Clean up unused Docker resources
docker system prune -f
# 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=1 docker build --no-cache \
-t "$DOCKER_URL/$DOCKER_USER/$PRJ_NAME:$DOCKER_TAG" \
--build-arg GITEA_PASS="$GITEA_PASS" \
--build-arg GITEA_USER="$GITEA_USER" \
"$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"
docker push "$DOCKER_URL/$DOCKER_USER/$PRJ_NAME"
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"
# Clean up unused Docker resources
docker volume prune -f
docker image prune -f --filter "dangling=true"
docker network prune -f

View File

@@ -0,0 +1,35 @@
#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/testreactdatatype.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/testreactdatatype/testreactdatatype-test2-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
FROM eclipse-temurin:8-jdk-alpine
LABEL stage=app
LABEL build=$BUILD_ID
RUN mkdir /usr/app
RUN mkdir /data
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"]

View File

@@ -0,0 +1,37 @@
#!/bin/bash
PRJ_NAME=testreactdatatype-test2-b
DOCKER_USER=risadmin_prod
DOCKER_PASS=$(sv get risadmin_prod dockerPassword)
DOCKER_URL=157.66.191.31:3000
#********************
REPO_NAME=testreactdatatype
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/58629_1779340071212/sureops_deploy/testreactdatatype/sureops/testreactdatatype-test2-b/deployment
#**********************
cd $PATH_DIR
DOCKER_TAG=1.2
#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"