From 1d662e1f32e9867fa4143b5f56d794b8e44d4e2d Mon Sep 17 00:00:00 2001 From: Zheyuan Wu <60459821+Trance-0@users.noreply.github.com> Date: Wed, 5 Nov 2025 01:22:40 -0600 Subject: [PATCH] update node kernels --- Dockerfile | 2 +- docker/Jenkinsfile | 39 ++++++++++++++++++++++++++++++++++---- docker/cse/Dockerfile | 2 +- docker/docker-compose.yaml | 2 ++ docker/math/Dockerfile | 2 +- 5 files changed, 40 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0565a1c..d45aa43 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # Source: https://github.com/vercel/next.js/blob/canary/examples/with-docker-multi-env/docker/production/Dockerfile # syntax=docker.io/docker/dockerfile:1 -FROM node:18-alpine AS base +FROM node:20-alpine AS base ENV NODE_OPTIONS="--max-old-space-size=8192" diff --git a/docker/Jenkinsfile b/docker/Jenkinsfile index e5e01c9..69f7d10 100644 --- a/docker/Jenkinsfile +++ b/docker/Jenkinsfile @@ -60,13 +60,44 @@ pipeline { } } } + stage('Cleanup Docker tags') { + steps { + script { + echo "1. Stopping existing container" + sh 'docker compose -f ./docker/docker-compose.yaml down' + // Using Workspace Cleanup Plugin (if installed and configured) + echo "2. Removing existing images" + def imageNameMath = "${registry}-math:latest" + def imageNameCSE = "${registry}-cse:latest" + def oldImageIDMath = sh( + script: 'docker images -qf reference=\${imageNameMath}', + returnStdout: true + ) + def oldImageIDCSE = sh( + script: 'docker images -qf reference=\${imageNameCSE}', + returnStdout: true + ) + echo "Image Name: " + "${imageName}" + echo "Old Image: ${oldImageID}" + if ( "${oldImageIDMath}" != '' ) { + sh 'docker rmi ${oldImageIDMath}' + }else{ + echo "Warning: ${imageNameMath} does not exist" + } + if ( "${oldImageIDCSE}" != '' ) { + sh 'docker rmi ${oldImageIDCSE}' + }else{ + echo "Warning: ${imageNameCSE} does not exist" + } + echo "3. Assigned new tags to the images" + sh 'docker tag ${registry}-math:v${version}.${env.BUILD_ID} ${registry}-math:latest' + sh 'docker tag ${registry}-cse:v${version}.${env.BUILD_ID} ${registry}-cse:latest' + } + } + } stage('Deploy') { steps { script { - echo "Stopping existing container" - sh 'docker compose -f ./docker/docker-compose.yaml down' - echo "Removing existing container" - sh 'docker compose -f ./docker/docker-compose.yaml rm -f' echo "Deploying docker image ${registry}-math:${version}.${env.BUILD_ID} and ${registry}-cse:${version}.${env.BUILD_ID} with docker compose" sh 'docker compose -f ./docker/docker-compose.yaml up -d' } diff --git a/docker/cse/Dockerfile b/docker/cse/Dockerfile index b448e08..8f1b9ff 100644 --- a/docker/cse/Dockerfile +++ b/docker/cse/Dockerfile @@ -3,7 +3,7 @@ # Source: https://github.com/vercel/next.js/blob/canary/examples/with-docker-multi-env/docker/production/Dockerfile # syntax=docker.io/docker/dockerfile:1 -FROM node:18-alpine AS base +FROM node:20-alpine AS base ENV NODE_OPTIONS="--max-old-space-size=8192" diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml index 83d345b..54c0fae 100644 --- a/docker/docker-compose.yaml +++ b/docker/docker-compose.yaml @@ -4,6 +4,7 @@ services: # you may need to update relative directories if you move this file # default created directories is /docker/docker-compose.yaml notenextra-math: + image: trance0/notenextra-math:latest build: context: ../ dockerfile: ./docker/math/Dockerfile @@ -13,6 +14,7 @@ services: ports: - 13001:4200 notenextra-cse: + image: trance0/notenextra-cse:latest build: context: ../ dockerfile: ./docker/cse/Dockerfile diff --git a/docker/math/Dockerfile b/docker/math/Dockerfile index f6e4177..d612f1e 100644 --- a/docker/math/Dockerfile +++ b/docker/math/Dockerfile @@ -3,7 +3,7 @@ # Source: https://github.com/vercel/next.js/blob/canary/examples/with-docker-multi-env/docker/production/Dockerfile # syntax=docker.io/docker/dockerfile:1 -FROM node:18-alpine AS base +FROM node:20-alpine AS base ENV NODE_OPTIONS="--max-old-space-size=8192"