Преглед на файлове

Fix the console readkey issue

Nitin Kumar преди 1 седмица
родител
ревизия
5cc3ba79e8
променени са 4 файла, в които са добавени 72 реда и са изтрити 2 реда
  1. 12 0
      CI-CD-Pipeline/Dockerfile
  2. 4 0
      CI-CD-Pipeline/pipeline.sh
  3. 54 0
      CI-CD-Pipeline/watch.sh
  4. 2 2
      Elsevier_Scheduler/Program.cs

+ 12 - 0
CI-CD-Pipeline/Dockerfile

@@ -0,0 +1,12 @@
+FROM docker:rc-git
+WORKDIR /scheduler
+COPY watch.sh .
+RUN git clone --branch dev https://1d5ea1815adcccafb9179839419558593e378589@git.luminad.com/Elsevier/Elsevier_Scheduler.git
+RUN docker login docker.luminad.com -u dockeradmin -p Welcome@123!
+
+# Create the log file to be able to run tail
+RUN touch /var/log/cron.log
+# Setup cron job
+RUN (crontab -l ; echo "*/1 * * * * /bin/sh /scheduler/watch.sh >> /var/log/cron.log 2>&1") | crontab -
+# Run the command on container startup
+CMD busybox crond -L /var/log/cron.log && tail -f /var/log/cron.log

+ 4 - 0
CI-CD-Pipeline/pipeline.sh

@@ -0,0 +1,4 @@
+docker build -t docker.luminad.com/els-conference-cl-scheduler-dev-pipeline .
+#docker push docker.luminad.com/els-conference-cl-scheduler-dev-pipeline
+docker rm els-conference-cl-scheduler-dev-pipeline -f
+docker run -d --name els-conference-cl-scheduler-dev-pipeline -v /var/run/docker.sock:/var/run/docker.sock docker.luminad.com/els-conference-cl-scheduler-dev-pipeline

+ 54 - 0
CI-CD-Pipeline/watch.sh

@@ -0,0 +1,54 @@
+#!/bin/sh
+# Auto deploy cron script
+
+LOCAL_REPO_PATH="/scheduler/Elsevier_Scheduler"
+UPDATE_LOG_PATH="/scheduler/gitstatus.log"
+
+ConferenceCLScheduler_IMAGE="docker.luminad.com/els_conference-cl-scheduler:dev"
+CONTAINER_PREFIX="els_conference-cl-Scheduler"
+ENV_SUFFIX="dev"
+
+NUMBER_OF_CONTAINERS=1   # 👈 CHANGE THIS VALUE ONLY
+
+BRANCH="dev"
+
+cd "$LOCAL_REPO_PATH" || exit 1
+
+echo "git pull origin ${BRANCH}" > "$UPDATE_LOG_PATH"
+git pull origin "$BRANCH" >> "$UPDATE_LOG_PATH"
+
+if grep -q 'Updating' "$UPDATE_LOG_PATH"; then
+
+    echo "🔨 Building Docker image..."
+    docker build -t "$ConferenceCLScheduler_IMAGE" -f ./Elsevier_Scheduler/Dockerfile .
+
+    i=1
+    while [ "$i" -le "$NUMBER_OF_CONTAINERS" ]; do
+
+        CONTAINER_NAME="${CONTAINER_PREFIX}${i}-${ENV_SUFFIX}"
+
+        echo "♻️ Restarting container: $CONTAINER_NAME"
+
+        docker stop "$CONTAINER_NAME" 2>/dev/null || true
+        docker rm "$CONTAINER_NAME" 2>/dev/null || true
+
+        docker run \
+          -v /share/uat:/efs -v /share/uat:/efs1 -v /share/vtool:/vtool \
+          -d \
+          --name "$CONTAINER_NAME" \
+          "$ConferenceCLScheduler_IMAGE"
+
+        i=$((i + 1))
+    done
+
+    echo "📤 Pushing image to registry..."
+    docker push "$ConferenceCLScheduler_IMAGE"
+
+    echo "---------------------"
+    echo "Conference CL Scheduler Updated successfully"
+    echo "---------------------"
+else
+    echo "---------------------"
+    echo "Already Up-to-date"
+    echo "---------------------"
+fi

+ 2 - 2
Elsevier_Scheduler/Program.cs

@@ -41,8 +41,8 @@ class Program
 
         //await scheduler.ScheduleJob(job, trigger);
         await scheduler.ScheduleJob(job, new[] { trigger }, replace: true);
-        Console.WriteLine("Scheduler started. Press any key to exit...");
-        Console.ReadKey();
+        Console.WriteLine("Scheduler started.");
+        await Task.Delay(Timeout.Infinite);
         // 6️⃣ Shutdown when finished
         await scheduler.Shutdown();
     }