From 610ef5d2b91db8747626c7723ea572e8db55871e Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Thu, 27 Aug 2020 21:13:53 +0200 Subject: [PATCH 01/41] Delete Jenkinsfile --- Jenkinsfile | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index 6aaab56..0000000 --- a/Jenkinsfile +++ /dev/null @@ -1,25 +0,0 @@ - -pipeline { - agent any - stages { - stage('Build') { - steps { - sh 'docker build -f dockerfile . -t mahmom/jenkins_node:v1.0' - } - } - stage('push') { - steps { - withCredentials([usernamePassword(credentialsId:"docker",usernameVariable:"USERNAME",passwordVariable:"PASSWORD")]){ - sh 'docker login --username $USERNAME --password $PASSWORD' - sh 'docker push mahmom/jenkins_node:v1.0' - } - - } - } - stage('Deploy') { - steps { - sh 'docker run -d -p 3000:3000 mahmom/jenkins_node:v1.0' - } - } - } -} From 8b2943e8ef130656d39083a4c55ef62ff05341cc Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Sun, 27 Sep 2020 20:00:31 +0200 Subject: [PATCH 02/41] Set up CI with Azure Pipelines [skip ci] --- azure-pipelines.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 azure-pipelines.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000..ea67939 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,19 @@ +# Starter pipeline +# Start with a minimal pipeline that you can customize to build and deploy your code. +# Add steps that build, run tests, deploy, and more: +# https://aka.ms/yaml + +trigger: +- master + +pool: + vmImage: 'ubuntu-latest' + +steps: +- script: echo $(TEST) + displayName: 'Run a one-line script' + +- script: | + echo Add other tasks to build, test, and deploy your project. + echo See https://aka.ms/yaml + displayName: 'Run a multi-line script' From 2acefbb88208256f9ded7653647346aa36c7d91a Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Sun, 27 Sep 2020 20:53:34 +0200 Subject: [PATCH 03/41] Update azure-pipelines.yml for Azure Pipelines --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index ea67939..c27ba0f 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -7,7 +7,7 @@ trigger: - master pool: - vmImage: 'ubuntu-latest' + hamada steps: - script: echo $(TEST) From 9c47226028bc8bc3f4123dbe2d42be05cc81952a Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Sun, 27 Sep 2020 21:01:48 +0200 Subject: [PATCH 04/41] Delete azure-pipelines.yml --- azure-pipelines.yml | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 azure-pipelines.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index c27ba0f..0000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Starter pipeline -# Start with a minimal pipeline that you can customize to build and deploy your code. -# Add steps that build, run tests, deploy, and more: -# https://aka.ms/yaml - -trigger: -- master - -pool: - hamada - -steps: -- script: echo $(TEST) - displayName: 'Run a one-line script' - -- script: | - echo Add other tasks to build, test, and deploy your project. - echo See https://aka.ms/yaml - displayName: 'Run a multi-line script' From 1302d3598a948c3b5bfa3c6b5994a9c8a017f789 Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Sun, 21 Mar 2021 15:02:02 -0400 Subject: [PATCH 05/41] Update app.js --- nodeapp/app.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nodeapp/app.js b/nodeapp/app.js index 893a8fe..36c5ac8 100644 --- a/nodeapp/app.js +++ b/nodeapp/app.js @@ -2,9 +2,9 @@ const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) => { - res.send('Hello World!') + res.send('Hello World from sprints!') }) app.listen(port, () => { console.log(`Example app listening at http://localhost:${port}`) - }) \ No newline at end of file + }) From e11cc9a919d995aa36e1eae587aeb55c56592e8a Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Thu, 25 Mar 2021 20:06:21 +0200 Subject: [PATCH 06/41] Create docker-image.yml --- .github/workflows/docker-image.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .github/workflows/docker-image.yml diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml new file mode 100644 index 0000000..3cff163 --- /dev/null +++ b/.github/workflows/docker-image.yml @@ -0,0 +1,18 @@ +name: Docker Image CI + +on: + push: + branches: [ master ] + +jobs: + + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: docker login + run: docker login -u "${DOCKER_USERNAME}" -P "${DOCKER_PASSWORD}" + - name: Build the Docker image + run: docker build . -f Dockerfile --tag mahmom/jenkins_sprints:$(date +%s) From 59cc3ff70c3b93094f3bc0ec9ec67944b3ceef43 Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Thu, 25 Mar 2021 20:07:53 +0200 Subject: [PATCH 07/41] Update docker-image.yml --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 3cff163..0f5467e 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -13,6 +13,6 @@ jobs: steps: - uses: actions/checkout@v2 - name: docker login - run: docker login -u "${DOCKER_USERNAME}" -P "${DOCKER_PASSWORD}" + run: docker login -u "${DOCKER_USERNAME}" -p "${DOCKER_PASSWORD}" - name: Build the Docker image run: docker build . -f Dockerfile --tag mahmom/jenkins_sprints:$(date +%s) From b6fd82f315fcd8c1a4a36b6f88f55b21cf7d1ee6 Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Thu, 25 Mar 2021 20:09:10 +0200 Subject: [PATCH 08/41] Update docker-image.yml --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 0f5467e..76c200c 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -15,4 +15,4 @@ jobs: - name: docker login run: docker login -u "${DOCKER_USERNAME}" -p "${DOCKER_PASSWORD}" - name: Build the Docker image - run: docker build . -f Dockerfile --tag mahmom/jenkins_sprints:$(date +%s) + run: docker build . -f dockerfile --tag mahmom/jenkins_sprints:$(date +%s) From 0d9ff6464edff6c606293fd716bc252e607ff650 Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Thu, 25 Mar 2021 20:12:29 +0200 Subject: [PATCH 09/41] Update docker-image.yml --- .github/workflows/docker-image.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 76c200c..322adf4 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -16,3 +16,5 @@ jobs: run: docker login -u "${DOCKER_USERNAME}" -p "${DOCKER_PASSWORD}" - name: Build the Docker image run: docker build . -f dockerfile --tag mahmom/jenkins_sprints:$(date +%s) + - name: push the Docker image + run: docker push mahmom/jenkins_sprints:$(date +%s) From 480647eabb6ba2c56e5d5ab27a2fdd4a7bcec6c6 Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Thu, 25 Mar 2021 20:15:29 +0200 Subject: [PATCH 10/41] Update docker-image.yml --- .github/workflows/docker-image.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 322adf4..1a5c5d0 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -15,6 +15,6 @@ jobs: - name: docker login run: docker login -u "${DOCKER_USERNAME}" -p "${DOCKER_PASSWORD}" - name: Build the Docker image - run: docker build . -f dockerfile --tag mahmom/jenkins_sprints:$(date +%s) + run: docker build . -f dockerfile --tag mahmom/jenkins_sprints:"${GITHUB_SHA}" - name: push the Docker image - run: docker push mahmom/jenkins_sprints:$(date +%s) + run: docker push mahmom/jenkins_sprints:"${GITHUB_SHA}" From 5aa41906fef631d75880384b1fcc5d66fb871920 Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Thu, 25 Mar 2021 20:23:08 +0200 Subject: [PATCH 11/41] Update docker-image.yml --- .github/workflows/docker-image.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 1a5c5d0..76fab7f 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -13,8 +13,8 @@ jobs: steps: - uses: actions/checkout@v2 - name: docker login - run: docker login -u "${DOCKER_USERNAME}" -p "${DOCKER_PASSWORD}" + run: docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} - name: Build the Docker image - run: docker build . -f dockerfile --tag mahmom/jenkins_sprints:"${GITHUB_SHA}" + run: docker build . -f dockerfile --tag mahmom/jenkins_sprints:${{ GITHUB_SHA }} - name: push the Docker image - run: docker push mahmom/jenkins_sprints:"${GITHUB_SHA}" + run: docker push mahmom/jenkins_sprints:${{ GITHUB_SHA }} From a0ac5ffb574dae357a1d06c23fe6d8758478fe05 Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Thu, 25 Mar 2021 20:24:33 +0200 Subject: [PATCH 12/41] Update docker-image.yml --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 76fab7f..e508ba0 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -17,4 +17,4 @@ jobs: - name: Build the Docker image run: docker build . -f dockerfile --tag mahmom/jenkins_sprints:${{ GITHUB_SHA }} - name: push the Docker image - run: docker push mahmom/jenkins_sprints:${{ GITHUB_SHA }} + run: docker push mahmom/jenkins_sprints:${{ github.sha }} From 9662bca0b87af7560aabafeee76e5f10beefa09b Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Thu, 25 Mar 2021 20:24:50 +0200 Subject: [PATCH 13/41] Update docker-image.yml --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index e508ba0..2c8faee 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -15,6 +15,6 @@ jobs: - name: docker login run: docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} - name: Build the Docker image - run: docker build . -f dockerfile --tag mahmom/jenkins_sprints:${{ GITHUB_SHA }} + run: docker build . -f dockerfile --tag mahmom/jenkins_sprints:${{ github.sha }} - name: push the Docker image run: docker push mahmom/jenkins_sprints:${{ github.sha }} From efc930a9c45b1fa94e6873b35d7ec6fd19e6a87c Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Mon, 29 Mar 2021 11:12:21 -0400 Subject: [PATCH 14/41] Update app.js --- nodeapp/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nodeapp/app.js b/nodeapp/app.js index 36c5ac8..332f90d 100644 --- a/nodeapp/app.js +++ b/nodeapp/app.js @@ -2,7 +2,7 @@ const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) => { - res.send('Hello World from sprints!') + res.send('Hello World from ITI!') }) app.listen(port, () => { From e0d12968861736c1154ba6b55486eadb76e26f48 Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Tue, 30 Mar 2021 12:24:26 +0200 Subject: [PATCH 15/41] Delete docker-image.yml --- .github/workflows/docker-image.yml | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 .github/workflows/docker-image.yml diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml deleted file mode 100644 index 2c8faee..0000000 --- a/.github/workflows/docker-image.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Docker Image CI - -on: - push: - branches: [ master ] - -jobs: - - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - name: docker login - run: docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} - - name: Build the Docker image - run: docker build . -f dockerfile --tag mahmom/jenkins_sprints:${{ github.sha }} - - name: push the Docker image - run: docker push mahmom/jenkins_sprints:${{ github.sha }} From 3fa7cde9f92865d14c5513026a24486ba52e7f33 Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Tue, 30 Mar 2021 09:34:03 -0400 Subject: [PATCH 16/41] Create docker-publish.yml --- .github/workflows/docker-publish.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/workflows/docker-publish.yml diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml new file mode 100644 index 0000000..997f6f8 --- /dev/null +++ b/.github/workflows/docker-publish.yml @@ -0,0 +1,22 @@ +name: Docker + +on: + push: + # Publish `master` as Docker `latest` image. + branches: + - master + +jobs: + # Run tests. + # See also https://docs.docker.com/docker-hub/builds/automated-testing/ + test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Run tests + run: | + docker build . --file dockerfile -t mahmom/jenkins_iti:v1.10 + docker login -u ${{ secrets.DOCKER_USERNAME}} -p ${{secrets.DOCKER_PASSWORD}} + docker push mahmom/jenkins_iti:v1.10 From ab7f6c01ee14588cf1b357117b409079c68921bb Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Tue, 4 May 2021 05:22:22 -0400 Subject: [PATCH 17/41] Create Jenkinsfile --- Jenkinsfile | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..a5f731c --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,21 @@ +pipeline { + agent any + + stages { + stage('Hello') { + steps { + echo 'Hello World' + } + } + stage('ls') { + steps { + sh 'ls' + } + } + stage('pwd') { + steps { + sh 'pwd' + } + } + } +} From b02d3bbbc31718a8a5ec8ef4adae855251af6e83 Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Tue, 4 May 2021 05:30:48 -0400 Subject: [PATCH 18/41] Delete Jenkinsfile --- Jenkinsfile | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index a5f731c..0000000 --- a/Jenkinsfile +++ /dev/null @@ -1,21 +0,0 @@ -pipeline { - agent any - - stages { - stage('Hello') { - steps { - echo 'Hello World' - } - } - stage('ls') { - steps { - sh 'ls' - } - } - stage('pwd') { - steps { - sh 'pwd' - } - } - } -} From 7dec8c57590591c388cd147d1693436cc55c3af0 Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Mon, 27 Sep 2021 21:53:57 +0200 Subject: [PATCH 19/41] Create Jenkinsfile --- Jenkinsfile | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..56c1195 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,24 @@ +pipeline { + agent any + + + stages { + stage('Build') { + steps { + + // Get some code from a GitHub repository + git 'https://github.com/mahmoud254/jenkins_nodejs_example.git' + + // Run Maven on a Unix agent. + sh """ls + mkdir test + + """ + + // To run Maven on a Windows agent, use + // bat "mvn -Dmaven.test.failure.ignore=true clean package" + } + + } + } +} From a308b44f48a6f772997ea3afe174553b0d3de6c0 Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Mon, 27 Sep 2021 22:00:39 +0200 Subject: [PATCH 20/41] Update Jenkinsfile --- Jenkinsfile | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 56c1195..7e9c5f2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -3,22 +3,23 @@ pipeline { stages { - stage('Build') { + stage('preparation') { steps { // Get some code from a GitHub repository git 'https://github.com/mahmoud254/jenkins_nodejs_example.git' + } - // Run Maven on a Unix agent. - sh """ls - mkdir test + } + stage('docker build') { + steps { + // Get some code from a GitHub repository + sh """ + docker build . -f dockerfile -t mahmom/sprints_jenkins_course:latest """ - - // To run Maven on a Windows agent, use - // bat "mvn -Dmaven.test.failure.ignore=true clean package" } - } + } } } From d59b4580dc93b7f416b8a7a0ffde5c310ab4ad35 Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Mon, 27 Sep 2021 22:13:05 +0200 Subject: [PATCH 21/41] Update Jenkinsfile --- Jenkinsfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 7e9c5f2..682ddb8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -15,8 +15,11 @@ pipeline { steps { // Get some code from a GitHub repository + withCredentials([usernamePassword(credentialsId: 'dockerhub', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) { sh """ docker build . -f dockerfile -t mahmom/sprints_jenkins_course:latest + dcoker login -u ${USERNAME} -p ${PASSWORD} + docker push mahmom/sprints_jenkins_course:latest """ } From c7d5c97096df4de334ddd03caf979e3a41a4505d Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Mon, 27 Sep 2021 22:14:42 +0200 Subject: [PATCH 22/41] Update Jenkinsfile --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 682ddb8..4b046b8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -22,7 +22,7 @@ pipeline { docker push mahmom/sprints_jenkins_course:latest """ } - + } } } } From 3a1b8b24381bd54dc0ee041539e00dc172a4829e Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Mon, 27 Sep 2021 22:15:31 +0200 Subject: [PATCH 23/41] Update Jenkinsfile --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 4b046b8..02de04c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -18,7 +18,7 @@ pipeline { withCredentials([usernamePassword(credentialsId: 'dockerhub', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) { sh """ docker build . -f dockerfile -t mahmom/sprints_jenkins_course:latest - dcoker login -u ${USERNAME} -p ${PASSWORD} + docker login -u ${USERNAME} -p ${PASSWORD} docker push mahmom/sprints_jenkins_course:latest """ } From 9891c6f280ac496f16abce6f9057eb01f9ca3bac Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Mon, 27 Sep 2021 22:19:10 +0200 Subject: [PATCH 24/41] Update Jenkinsfile --- Jenkinsfile | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 02de04c..58936ef 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -23,6 +23,16 @@ pipeline { """ } } - } + } + stage('deployment') { + steps { + + // Get some code from a GitHub repository + sh""" + docker run -d -p 3000:3000 mahmom/sprints_jenkins_course:latest + """ + + } + } } } From 0735e4d33f1b2113ad34fb1cee80d33b807c4bf5 Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Mon, 27 Sep 2021 22:21:59 +0200 Subject: [PATCH 25/41] Delete Jenkinsfile --- Jenkinsfile | 38 -------------------------------------- 1 file changed, 38 deletions(-) delete mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index 58936ef..0000000 --- a/Jenkinsfile +++ /dev/null @@ -1,38 +0,0 @@ -pipeline { - agent any - - - stages { - stage('preparation') { - steps { - - // Get some code from a GitHub repository - git 'https://github.com/mahmoud254/jenkins_nodejs_example.git' - } - - } - stage('docker build') { - steps { - - // Get some code from a GitHub repository - withCredentials([usernamePassword(credentialsId: 'dockerhub', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) { - sh """ - docker build . -f dockerfile -t mahmom/sprints_jenkins_course:latest - docker login -u ${USERNAME} -p ${PASSWORD} - docker push mahmom/sprints_jenkins_course:latest - """ - } - } - } - stage('deployment') { - steps { - - // Get some code from a GitHub repository - sh""" - docker run -d -p 3000:3000 mahmom/sprints_jenkins_course:latest - """ - - } - } - } -} From d17154aa7c61e6caba0704c2a029a71ed59fbf13 Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Tue, 28 Sep 2021 13:55:18 +0200 Subject: [PATCH 26/41] Create Jenkinsfile --- Jenkinsfile | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..23e7338 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,42 @@ +pipeline { + agent any + + stages { + stage('CI') { + steps { + // Get some code from a GitHub repository + git 'https://github.com/mahmoud254/jenkins_nodejs_example.git' + + // Run Maven on a Unix agent. + withCredentials([usernamePassword(credentialsId: 'dockerhub', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) { + + sh """ + docker build . -f dockerfile -t mahmom/nagwa_jenkins:latest + docker login -u ${USERNAME} mahmom -p ${PASSWORD} + docker push mahmom/nagwa_jenkins:latest + + """ + + // To run Maven on a Windows agent, use + // bat "mvn -Dmaven.test.failure.ignore=true clean package" + } +} + } + + + stage('CD') { + steps { + + sh """ + + docker run -p 3000:3000 mahmom/nagwa_jenkins:latest + + """ + + // To run Maven on a Windows agent, use + // bat "mvn -Dmaven.test.failure.ignore=true clean package" + } + + } + } +} From a0c7b627c205e4f03689a47f474ff7472029d71f Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Tue, 28 Sep 2021 13:57:31 +0200 Subject: [PATCH 27/41] Update Jenkinsfile --- Jenkinsfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 23e7338..3d1801b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -5,8 +5,6 @@ pipeline { stage('CI') { steps { // Get some code from a GitHub repository - git 'https://github.com/mahmoud254/jenkins_nodejs_example.git' - // Run Maven on a Unix agent. withCredentials([usernamePassword(credentialsId: 'dockerhub', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) { From 8527821f220c19625bb44d0cc7f36e3ac807a2a5 Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Tue, 28 Sep 2021 14:00:49 +0200 Subject: [PATCH 28/41] Update Jenkinsfile --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3d1801b..807d530 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { sh """ docker build . -f dockerfile -t mahmom/nagwa_jenkins:latest - docker login -u ${USERNAME} mahmom -p ${PASSWORD} + docker login -u ${USERNAME} -p ${PASSWORD} docker push mahmom/nagwa_jenkins:latest """ From 8b23b90d16627ba5bea48bfa8d920121ea75ff87 Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Wed, 6 Oct 2021 22:24:22 +0200 Subject: [PATCH 29/41] Delete Jenkinsfile --- Jenkinsfile | 40 ---------------------------------------- 1 file changed, 40 deletions(-) delete mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index 807d530..0000000 --- a/Jenkinsfile +++ /dev/null @@ -1,40 +0,0 @@ -pipeline { - agent any - - stages { - stage('CI') { - steps { - // Get some code from a GitHub repository - // Run Maven on a Unix agent. - withCredentials([usernamePassword(credentialsId: 'dockerhub', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) { - - sh """ - docker build . -f dockerfile -t mahmom/nagwa_jenkins:latest - docker login -u ${USERNAME} -p ${PASSWORD} - docker push mahmom/nagwa_jenkins:latest - - """ - - // To run Maven on a Windows agent, use - // bat "mvn -Dmaven.test.failure.ignore=true clean package" - } -} - } - - - stage('CD') { - steps { - - sh """ - - docker run -p 3000:3000 mahmom/nagwa_jenkins:latest - - """ - - // To run Maven on a Windows agent, use - // bat "mvn -Dmaven.test.failure.ignore=true clean package" - } - - } - } -} From d0d205bab8d03edd49ff15cdee5d91ce65ceb252 Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Sat, 23 Jul 2022 10:07:35 +0200 Subject: [PATCH 30/41] Update app.js --- nodeapp/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nodeapp/app.js b/nodeapp/app.js index 332f90d..274267f 100644 --- a/nodeapp/app.js +++ b/nodeapp/app.js @@ -2,7 +2,7 @@ const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) => { - res.send('Hello World from ITI!') + res.send('Hello World from ITI 3 month') }) app.listen(port, () => { From 76b82f9debde852cca6b5c1d574c0ce00b9c1600 Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Sat, 4 Feb 2023 13:51:58 +0200 Subject: [PATCH 31/41] Update docker-publish.yml --- .github/workflows/docker-publish.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 997f6f8..7c965e5 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -1,5 +1,4 @@ name: Docker - on: push: # Publish `master` as Docker `latest` image. From 187822e0da9b798daa7ec21d72765182837ce9be Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Sat, 6 May 2023 15:01:00 +0300 Subject: [PATCH 32/41] Update app.js --- nodeapp/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nodeapp/app.js b/nodeapp/app.js index 274267f..4242333 100644 --- a/nodeapp/app.js +++ b/nodeapp/app.js @@ -2,7 +2,7 @@ const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) => { - res.send('Hello World from ITI 3 month') + res.send('Hello World from ITI 43') }) app.listen(port, () => { From 6f0b360f145647daad6102ad442081369655c1df Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Sat, 4 May 2024 11:27:48 +0300 Subject: [PATCH 33/41] Update app.js --- nodeapp/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nodeapp/app.js b/nodeapp/app.js index 4242333..9e562bb 100644 --- a/nodeapp/app.js +++ b/nodeapp/app.js @@ -2,7 +2,7 @@ const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) => { - res.send('Hello World from ITI 43') + res.send('Hello World from ITI 44') }) app.listen(port, () => { From a409e93c46182a138327611e5738091932f0959c Mon Sep 17 00:00:00 2001 From: Mahmoud Alaa <46284954+mahmoud254@users.noreply.github.com> Date: Sat, 3 May 2025 13:50:03 +0300 Subject: [PATCH 34/41] Update app.js --- nodeapp/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nodeapp/app.js b/nodeapp/app.js index 9e562bb..6b8925f 100644 --- a/nodeapp/app.js +++ b/nodeapp/app.js @@ -2,7 +2,7 @@ const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) => { - res.send('Hello World from ITI 44') + res.send('Hello World from ITI 45') }) app.listen(port, () => { From c622d0e7b2d8f8bfc52a9f2b332721435bef4ddc Mon Sep 17 00:00:00 2001 From: DanaMostafa48 Date: Fri, 1 May 2026 00:30:37 +0000 Subject: [PATCH 35/41] add k8s manifests --- .gitignore | 2 ++ k8s/config.yml | 10 ++++++ k8s/deployment.yml | 78 +++++++++++++++++++++++++++++++++++++++++++++ k8s/mysqlsev.yml | 12 +++++++ k8s/nodejsev.yml | 14 ++++++++ k8s/ns.yml | 6 ++++ k8s/pv.yml | 13 ++++++++ k8s/pvc.yml | 17 ++++++++++ k8s/secret.yml | 7 ++++ k8s/statefulset.yml | 48 ++++++++++++++++++++++++++++ 10 files changed, 207 insertions(+) create mode 100644 .gitignore create mode 100644 k8s/config.yml create mode 100644 k8s/deployment.yml create mode 100644 k8s/mysqlsev.yml create mode 100644 k8s/nodejsev.yml create mode 100644 k8s/ns.yml create mode 100644 k8s/pv.yml create mode 100644 k8s/pvc.yml create mode 100644 k8s/secret.yml create mode 100644 k8s/statefulset.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6552d53 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.scannerwork/ +node_modules/ \ No newline at end of file diff --git a/k8s/config.yml b/k8s/config.yml new file mode 100644 index 0000000..2779ced --- /dev/null +++ b/k8s/config.yml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: mysql-config + namespace: nodejs +data: + DB_HOST: mysql + DB_USER: root + DB_NAME: mydb + DB_PORT: "3306" \ No newline at end of file diff --git a/k8s/deployment.yml b/k8s/deployment.yml new file mode 100644 index 0000000..54456b4 --- /dev/null +++ b/k8s/deployment.yml @@ -0,0 +1,78 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nodejs-deployment + namespace: nodejs + labels: + app: backend + +spec: + replicas: 2 + + selector: + matchLabels: + app: backend + + template: + metadata: + labels: + app: backend + + spec: + containers: + - name: nodejs + image: danamostafa/nodejs:latest + + ports: + - containerPort: 3000 + + env: + - name: DB_HOST + valueFrom: + configMapKeyRef: + name: mysql-config + key: DB_HOST + + - name: DB_USER + valueFrom: + configMapKeyRef: + name: mysql-config + key: DB_USER + + - name: DB_NAME + valueFrom: + configMapKeyRef: + name: mysql-config + key: DB_NAME + + - name: DB_PORT + valueFrom: + configMapKeyRef: + name: mysql-config + key: DB_PORT + + - name: DB_PASSWORD + valueFrom: + secretKeyRef: + name: mysql-secret + key: MYSQL_ROOT_PASSWORD + + resources: + requests: + cpu: "100m" + memory: "128Mi" + limits: + cpu: "250m" + memory: "256Mi" + + readinessProbe: + httpGet: + path: / + port: 3000 + initialDelaySeconds: 5 + + livenessProbe: + httpGet: + path: / + port: 3000 + initialDelaySeconds: 10 \ No newline at end of file diff --git a/k8s/mysqlsev.yml b/k8s/mysqlsev.yml new file mode 100644 index 0000000..e998252 --- /dev/null +++ b/k8s/mysqlsev.yml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: mysql + namespace: nodejs +spec: + clusterIP: None + selector: + app: mysql + ports: + - port: 3306 + targetPort: 3306 \ No newline at end of file diff --git a/k8s/nodejsev.yml b/k8s/nodejsev.yml new file mode 100644 index 0000000..2703d4b --- /dev/null +++ b/k8s/nodejsev.yml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: nodejs + namespace: nodejs +spec: + type: NodePort + selector: + app: backend + ports: + - port: 3000 + targetPort: 3000 + nodePort: 30828 + \ No newline at end of file diff --git a/k8s/ns.yml b/k8s/ns.yml new file mode 100644 index 0000000..3658569 --- /dev/null +++ b/k8s/ns.yml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: nodejs + labels: + name: development diff --git a/k8s/pv.yml b/k8s/pv.yml new file mode 100644 index 0000000..21da9a5 --- /dev/null +++ b/k8s/pv.yml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: mysql-pv +spec: + capacity: + storage: 1Gi + + accessModes: + - ReadWriteOnce + + hostPath: + path: /data/mysql \ No newline at end of file diff --git a/k8s/pvc.yml b/k8s/pvc.yml new file mode 100644 index 0000000..9d714d1 --- /dev/null +++ b/k8s/pvc.yml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: mysql-pvc + namespace: nodejs + +spec: + volumeName: mysql-pv + + storageClassName: "" + + accessModes: + - ReadWriteOnce + + resources: + requests: + storage: 1Gi \ No newline at end of file diff --git a/k8s/secret.yml b/k8s/secret.yml new file mode 100644 index 0000000..e0a7519 --- /dev/null +++ b/k8s/secret.yml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: Secret +metadata: + name: mysql-secret + namespace: nodejs +data: + MYSQL_ROOT_PASSWORD: bXlwYXNzd29yZA== \ No newline at end of file diff --git a/k8s/statefulset.yml b/k8s/statefulset.yml new file mode 100644 index 0000000..1a5c5ff --- /dev/null +++ b/k8s/statefulset.yml @@ -0,0 +1,48 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: mysql + namespace: nodejs + +spec: + serviceName: mysql + replicas: 1 + + selector: + matchLabels: + app: mysql + + template: + metadata: + labels: + app: mysql + + spec: + containers: + - name: mysql + image: mysql:8.0 + + ports: + - containerPort: 3306 + + env: + - name: MYSQL_ROOT_PASSWORD + valueFrom: + secretKeyRef: + name: mysql-secret + key: MYSQL_ROOT_PASSWORD + + - name: MYSQL_DATABASE + valueFrom: + configMapKeyRef: + name: mysql-config + key: DB_NAME + + volumeMounts: + - name: mysql-storage + mountPath: /var/lib/mysql + + volumes: + - name: mysql-storage + persistentVolumeClaim: + claimName: mysql-pvc \ No newline at end of file From 2d419949d0249e2fee73c5fe1effa95c7ea8d8d8 Mon Sep 17 00:00:00 2001 From: DanaMostafa48 Date: Sat, 2 May 2026 02:32:16 +0000 Subject: [PATCH 36/41] gitaction added --- .github/workflows/main.yml | 61 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..1cec31f --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,61 @@ +name: nodejs-workflow + +on: + pull_request: + branches: + - master + push: + branches: + - master + +jobs: + + testing: + runs-on: self-hosted + steps: + - name: checkout repo + uses: actions/checkout@v4 + + - name: SonarQube scan + uses: SonarSource/sonarqube-scan-action@v2 + env: + SONAR_HOST_URL: http://localhost:9001 + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + with: + args: > + -Dsonar.projectKey=nodejs-workflow + -Dsonar.sources=. + + - name: Quality Gate + uses: SonarSource/sonarqube-quality-gate-action@v1 + env: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + + build: + needs: testing + runs-on: self-hosted + steps: + - name: checkout repo + uses: actions/checkout@v4 + + - name: docker login + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: build image + run: | + docker build -t danamostafa/nodejs:latest . + docker push danamostafa/nodejs:latest + + deployment: + needs: build + if: github.ref == 'refs/heads/master' + runs-on: self-hosted + steps: + - name: checkout repo + uses: actions/checkout@v4 + + - name: apply k8s manifest file + run: kubectl apply -f k8s/ \ No newline at end of file From 49b58f7060b329475df75d0791fa3be7a2f2fc60 Mon Sep 17 00:00:00 2001 From: DanaMostafa48 Date: Tue, 5 May 2026 10:33:37 +0000 Subject: [PATCH 37/41] app.js updated --- dockerfile | 4 +++- k8s/pvc.yml | 4 ++-- nodeapp/app.js | 21 +++++++++++++++++++-- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/dockerfile b/dockerfile index 08efcf2..e80d0a5 100644 --- a/dockerfile +++ b/dockerfile @@ -2,4 +2,6 @@ FROM node:12 COPY nodeapp /nodeapp WORKDIR /nodeapp RUN npm install -CMD ["node", "/nodeapp/app.js"] \ No newline at end of file +CMD ["node", "/nodeapp/app.js"] + + \ No newline at end of file diff --git a/k8s/pvc.yml b/k8s/pvc.yml index 9d714d1..d2922ff 100644 --- a/k8s/pvc.yml +++ b/k8s/pvc.yml @@ -6,8 +6,8 @@ metadata: spec: volumeName: mysql-pv - - storageClassName: "" + + storageClassName: "" accessModes: - ReadWriteOnce diff --git a/nodeapp/app.js b/nodeapp/app.js index 6b8925f..e6a5328 100644 --- a/nodeapp/app.js +++ b/nodeapp/app.js @@ -1,10 +1,27 @@ +const mysql = require('mysql'); const express = require('express') const app = express() const port = 3000 +const host= process.env.HOST +const user= process.env.USERNAME +const password= process.env.PASSWORD +const database= process.env.DATABASE + +const connection = mysql.createConnection({ + host: host, + user: user, + password: password, + database: database +}); +connection.connect((err) => { + if (err) throw err; + console.log('Connected!'); +}); + app.get('/', (req, res) => { - res.send('Hello World from ITI 45') + res.send('Hello World!') }) app.listen(port, () => { console.log(`Example app listening at http://localhost:${port}`) - }) + }) \ No newline at end of file From dacd6e787da228bd458b7bf19d54d374334fc343 Mon Sep 17 00:00:00 2001 From: DanaMostafa48 Date: Tue, 5 May 2026 23:52:53 +0000 Subject: [PATCH 38/41] update DB connection --- k8s/package-lock.json | 232 ++++++++++++++++++++++++++++++++++++++++++ k8s/package.json | 5 + 2 files changed, 237 insertions(+) create mode 100644 k8s/package-lock.json create mode 100644 k8s/package.json diff --git a/k8s/package-lock.json b/k8s/package-lock.json new file mode 100644 index 0000000..8185007 --- /dev/null +++ b/k8s/package-lock.json @@ -0,0 +1,232 @@ +{ + "name": "k8s", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "mysql2": "^3.22.3" + } + }, + "node_modules/@types/node": { + "version": "25.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz", + "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==", + "peer": true, + "dependencies": { + "undici-types": "~7.19.0" + } + }, + "node_modules/aws-ssl-profiles": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz", + "integrity": "sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dependencies": { + "is-property": "^1.0.2" + } + }, + "node_modules/iconv-lite": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" + }, + "node_modules/long": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==" + }, + "node_modules/lru.min": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lru.min/-/lru.min-1.1.4.tgz", + "integrity": "sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA==", + "engines": { + "bun": ">=1.0.0", + "deno": ">=1.30.0", + "node": ">=8.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wellwelwel" + } + }, + "node_modules/mysql2": { + "version": "3.22.3", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.22.3.tgz", + "integrity": "sha512-uWWxvZSRvRhtBdh2CdcuK83YcOfPdmEeEYB069bAmPnV93QApDGVPuvCQOLjlh7tYHEWdgQPrn6kosDxHBVLkA==", + "dependencies": { + "aws-ssl-profiles": "^1.1.2", + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.7.2", + "long": "^5.3.2", + "lru.min": "^1.1.4", + "named-placeholders": "^1.1.6", + "sql-escaper": "^1.3.3" + }, + "engines": { + "node": ">= 8.0" + }, + "peerDependencies": { + "@types/node": ">= 8" + } + }, + "node_modules/named-placeholders": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.6.tgz", + "integrity": "sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w==", + "dependencies": { + "lru.min": "^1.1.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sql-escaper": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/sql-escaper/-/sql-escaper-1.3.3.tgz", + "integrity": "sha512-BsTCV265VpTp8tm1wyIm1xqQCS+Q9NHx2Sr+WcnUrgLrQ6yiDIvHYJV5gHxsj1lMBy2zm5twLaZao8Jd+S8JJw==", + "engines": { + "bun": ">=1.0.0", + "deno": ">=2.0.0", + "node": ">=12.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/mysqljs/sql-escaper?sponsor=1" + } + }, + "node_modules/undici-types": { + "version": "7.19.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz", + "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==", + "peer": true + } + }, + "dependencies": { + "@types/node": { + "version": "25.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz", + "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==", + "peer": true, + "requires": { + "undici-types": "~7.19.0" + } + }, + "aws-ssl-profiles": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz", + "integrity": "sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==" + }, + "denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==" + }, + "generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "requires": { + "is-property": "^1.0.2" + } + }, + "iconv-lite": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" + }, + "long": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==" + }, + "lru.min": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lru.min/-/lru.min-1.1.4.tgz", + "integrity": "sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA==" + }, + "mysql2": { + "version": "3.22.3", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.22.3.tgz", + "integrity": "sha512-uWWxvZSRvRhtBdh2CdcuK83YcOfPdmEeEYB069bAmPnV93QApDGVPuvCQOLjlh7tYHEWdgQPrn6kosDxHBVLkA==", + "requires": { + "aws-ssl-profiles": "^1.1.2", + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.7.2", + "long": "^5.3.2", + "lru.min": "^1.1.4", + "named-placeholders": "^1.1.6", + "sql-escaper": "^1.3.3" + } + }, + "named-placeholders": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.6.tgz", + "integrity": "sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w==", + "requires": { + "lru.min": "^1.1.0" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sql-escaper": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/sql-escaper/-/sql-escaper-1.3.3.tgz", + "integrity": "sha512-BsTCV265VpTp8tm1wyIm1xqQCS+Q9NHx2Sr+WcnUrgLrQ6yiDIvHYJV5gHxsj1lMBy2zm5twLaZao8Jd+S8JJw==" + }, + "undici-types": { + "version": "7.19.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz", + "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==", + "peer": true + } + } +} diff --git a/k8s/package.json b/k8s/package.json new file mode 100644 index 0000000..51f886c --- /dev/null +++ b/k8s/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "mysql2": "^3.22.3" + } +} From 851dee4ab8a24c3c896f4b4f978a98e9ef7bb27f Mon Sep 17 00:00:00 2001 From: DanaMostafa48 Date: Wed, 6 May 2026 00:20:21 +0000 Subject: [PATCH 39/41] add gitignore --- .gitignore | 4 +- k8s/package-lock.json | 232 ------------------------------------------ k8s/package.json | 5 - 3 files changed, 3 insertions(+), 238 deletions(-) delete mode 100644 k8s/package-lock.json delete mode 100644 k8s/package.json diff --git a/.gitignore b/.gitignore index 6552d53..276a7ab 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ .scannerwork/ -node_modules/ \ No newline at end of file +node_modules/ +package-lock.json + \ No newline at end of file diff --git a/k8s/package-lock.json b/k8s/package-lock.json deleted file mode 100644 index 8185007..0000000 --- a/k8s/package-lock.json +++ /dev/null @@ -1,232 +0,0 @@ -{ - "name": "k8s", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "dependencies": { - "mysql2": "^3.22.3" - } - }, - "node_modules/@types/node": { - "version": "25.6.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz", - "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==", - "peer": true, - "dependencies": { - "undici-types": "~7.19.0" - } - }, - "node_modules/aws-ssl-profiles": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz", - "integrity": "sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/denque": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/generate-function": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", - "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", - "dependencies": { - "is-property": "^1.0.2" - } - }, - "node_modules/iconv-lite": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", - "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" - }, - "node_modules/long": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", - "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==" - }, - "node_modules/lru.min": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lru.min/-/lru.min-1.1.4.tgz", - "integrity": "sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA==", - "engines": { - "bun": ">=1.0.0", - "deno": ">=1.30.0", - "node": ">=8.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wellwelwel" - } - }, - "node_modules/mysql2": { - "version": "3.22.3", - "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.22.3.tgz", - "integrity": "sha512-uWWxvZSRvRhtBdh2CdcuK83YcOfPdmEeEYB069bAmPnV93QApDGVPuvCQOLjlh7tYHEWdgQPrn6kosDxHBVLkA==", - "dependencies": { - "aws-ssl-profiles": "^1.1.2", - "denque": "^2.1.0", - "generate-function": "^2.3.1", - "iconv-lite": "^0.7.2", - "long": "^5.3.2", - "lru.min": "^1.1.4", - "named-placeholders": "^1.1.6", - "sql-escaper": "^1.3.3" - }, - "engines": { - "node": ">= 8.0" - }, - "peerDependencies": { - "@types/node": ">= 8" - } - }, - "node_modules/named-placeholders": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.6.tgz", - "integrity": "sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w==", - "dependencies": { - "lru.min": "^1.1.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sql-escaper": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/sql-escaper/-/sql-escaper-1.3.3.tgz", - "integrity": "sha512-BsTCV265VpTp8tm1wyIm1xqQCS+Q9NHx2Sr+WcnUrgLrQ6yiDIvHYJV5gHxsj1lMBy2zm5twLaZao8Jd+S8JJw==", - "engines": { - "bun": ">=1.0.0", - "deno": ">=2.0.0", - "node": ">=12.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/mysqljs/sql-escaper?sponsor=1" - } - }, - "node_modules/undici-types": { - "version": "7.19.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz", - "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==", - "peer": true - } - }, - "dependencies": { - "@types/node": { - "version": "25.6.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz", - "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==", - "peer": true, - "requires": { - "undici-types": "~7.19.0" - } - }, - "aws-ssl-profiles": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz", - "integrity": "sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==" - }, - "denque": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==" - }, - "generate-function": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", - "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", - "requires": { - "is-property": "^1.0.2" - } - }, - "iconv-lite": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", - "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" - }, - "long": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", - "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==" - }, - "lru.min": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lru.min/-/lru.min-1.1.4.tgz", - "integrity": "sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA==" - }, - "mysql2": { - "version": "3.22.3", - "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.22.3.tgz", - "integrity": "sha512-uWWxvZSRvRhtBdh2CdcuK83YcOfPdmEeEYB069bAmPnV93QApDGVPuvCQOLjlh7tYHEWdgQPrn6kosDxHBVLkA==", - "requires": { - "aws-ssl-profiles": "^1.1.2", - "denque": "^2.1.0", - "generate-function": "^2.3.1", - "iconv-lite": "^0.7.2", - "long": "^5.3.2", - "lru.min": "^1.1.4", - "named-placeholders": "^1.1.6", - "sql-escaper": "^1.3.3" - } - }, - "named-placeholders": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.6.tgz", - "integrity": "sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w==", - "requires": { - "lru.min": "^1.1.0" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sql-escaper": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/sql-escaper/-/sql-escaper-1.3.3.tgz", - "integrity": "sha512-BsTCV265VpTp8tm1wyIm1xqQCS+Q9NHx2Sr+WcnUrgLrQ6yiDIvHYJV5gHxsj1lMBy2zm5twLaZao8Jd+S8JJw==" - }, - "undici-types": { - "version": "7.19.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz", - "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==", - "peer": true - } - } -} diff --git a/k8s/package.json b/k8s/package.json deleted file mode 100644 index 51f886c..0000000 --- a/k8s/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "dependencies": { - "mysql2": "^3.22.3" - } -} From 8225228f413d1d8544f8244cea432d4f42bef7c9 Mon Sep 17 00:00:00 2001 From: DanaMostafa48 Date: Wed, 6 May 2026 00:21:52 +0000 Subject: [PATCH 40/41] update nodeapp --- nodeapp/app.js | 14 ++++++++------ nodeapp/package.json | 5 ++++- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/nodeapp/app.js b/nodeapp/app.js index e6a5328..cb4c0d3 100644 --- a/nodeapp/app.js +++ b/nodeapp/app.js @@ -1,11 +1,11 @@ -const mysql = require('mysql'); +const mysql = require('mysql2'); const express = require('express') const app = express() const port = 3000 -const host= process.env.HOST -const user= process.env.USERNAME -const password= process.env.PASSWORD -const database= process.env.DATABASE +const host= process.env.DB_HOST +const user= process.env.DB_USER +const password= process.env.DB_PASSWORD +const database= process.env.DB_NAME; const connection = mysql.createConnection({ host: host, @@ -24,4 +24,6 @@ app.get('/', (req, res) => { app.listen(port, () => { console.log(`Example app listening at http://localhost:${port}`) - }) \ No newline at end of file + }) + + \ No newline at end of file diff --git a/nodeapp/package.json b/nodeapp/package.json index 85a6cee..8ca60e7 100644 --- a/nodeapp/package.json +++ b/nodeapp/package.json @@ -10,5 +10,8 @@ "author": "", "license": "ISC", "dependencies": { - "express": "^4.17.1" } + "express": "^4.17.1", + "mysql": "^2.18.1", + "mysql2": "^3.22.3" + } } From 1e20dc4a72665e75e33b03c52bb91eb1c74c86af Mon Sep 17 00:00:00 2001 From: DanaMostafa48 Date: Wed, 6 May 2026 00:22:51 +0000 Subject: [PATCH 41/41] update docker file --- dockerfile | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/dockerfile b/dockerfile index e80d0a5..4faf207 100644 --- a/dockerfile +++ b/dockerfile @@ -1,7 +1,10 @@ -FROM node:12 -COPY nodeapp /nodeapp +FROM node:18 + WORKDIR /nodeapp + +COPY nodeapp/package*.json ./ RUN npm install -CMD ["node", "/nodeapp/app.js"] - \ No newline at end of file +COPY nodeapp . + +CMD ["node", "app.js"] \ No newline at end of file