deployment_files
This commit is contained in:
30
sureops/schoolmanagementsystem001-front-f/deployment/Dockerfile
Executable file
30
sureops/schoolmanagementsystem001-front-f/deployment/Dockerfile
Executable file
@@ -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/schoolmanagementsystem001.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/schoolmanagementsystem001/schoolmanagementsystem001-front-f/authsec_angular_clarity_modern/frontend/angular-clarity-master/package.json /repo/schoolmanagementsystem001/schoolmanagementsystem001-front-f/authsec_angular_clarity_modern/frontend/angular-clarity-master/package-lock.json ./
|
||||
RUN npm install
|
||||
COPY --from=code /repo/schoolmanagementsystem001/schoolmanagementsystem001-front-f/authsec_angular_clarity_modern/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
|
||||
|
||||
71
sureops/schoolmanagementsystem001-front-f/deployment/build.sh
Executable file
71
sureops/schoolmanagementsystem001-front-f/deployment/build.sh
Executable file
@@ -0,0 +1,71 @@
|
||||
#!/bin/bash
|
||||
#ac
|
||||
# Global Variables
|
||||
PRJ_NAME="schoolmanagementsystem001-front-f"
|
||||
DOCKER_USER="risadmin_prod"
|
||||
DOCKER_PASS=$(sv get "risadmin_prod" dockerPassword)
|
||||
DOCKER_URL="157.66.191.31:3000"
|
||||
REPO_NAME="schoolmanagementsystem001"
|
||||
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/55640_1769579639013/sureops_deploy/schoolmanagementsystem001/sureops/schoolmanagementsystem001-front-f/deployment"
|
||||
DOCKER_TAG="1.1"
|
||||
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
|
||||
Reference in New Issue
Block a user