From 68c6bae1024fc03a03fd15ba2851907c5362fc78 Mon Sep 17 00:00:00 2001 From: Arinze Chinelo Jennifer Date: Fri, 2 May 2025 21:00:02 +0100 Subject: [PATCH 01/21] Jenkinsfile --- Jenkinsfile | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..9899624 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,19 @@ +pipeline { + agent any + + stages { + stage('Build') { + steps { + echo 'Building..' + sh""" + ls + """ + } + } + stage('Deploy') { + steps { + echo 'Deploying....' + } + } + } +} \ No newline at end of file From e919c37576a35c213308f5a07c0cbf99ba0d9e2f Mon Sep 17 00:00:00 2001 From: Arinze Chinelo Jennifer Date: Fri, 2 May 2025 21:21:59 +0100 Subject: [PATCH 02/21] src --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9899624..623748e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -6,7 +6,7 @@ pipeline { steps { echo 'Building..' sh""" - ls + ls src """ } } From 0c17e01a365d45ff8173b498d4bedcbdead679c0 Mon Sep 17 00:00:00 2001 From: Arinze Chinelo Jennifer Date: Fri, 2 May 2025 21:55:30 +0100 Subject: [PATCH 03/21] files --- Jenkinsfile | 5 ++++- ansible/aws_ec2.yml | 10 ++++++++++ ansible/group_vars/webservers.yml | 3 +++ ansible/playbook.yml | 9 +++++++++ 4 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 ansible/aws_ec2.yml create mode 100644 ansible/group_vars/webservers.yml create mode 100644 ansible/playbook.yml diff --git a/Jenkinsfile b/Jenkinsfile index 623748e..17cb7ce 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -12,7 +12,10 @@ pipeline { } stage('Deploy') { steps { - echo 'Deploying....' + sh""" + cd ansible + ansible-playbook -i aws_ec2.yml playbook.yml + """ } } } diff --git a/ansible/aws_ec2.yml b/ansible/aws_ec2.yml new file mode 100644 index 0000000..d26fb3a --- /dev/null +++ b/ansible/aws_ec2.yml @@ -0,0 +1,10 @@ +plugin: amazon.aws.aws_ec2 + +regions: + - us-east-1 + +groups: + webservers: "'project1-app' in tags.Name" + +hostnames: + - private-ip-address \ No newline at end of file diff --git a/ansible/group_vars/webservers.yml b/ansible/group_vars/webservers.yml new file mode 100644 index 0000000..7093e7a --- /dev/null +++ b/ansible/group_vars/webservers.yml @@ -0,0 +1,3 @@ +ansible_user: ec2-user +ansible_ssh_private_key_file: ~/.ssh/server-key +ansible_ssh_common_args: "-o StrictHostKeyChecking=nosudo" \ No newline at end of file diff --git a/ansible/playbook.yml b/ansible/playbook.yml new file mode 100644 index 0000000..98450d9 --- /dev/null +++ b/ansible/playbook.yml @@ -0,0 +1,9 @@ +--- +- name: Update web servers + hosts: webservers + remote_user: ec2-user + become: true + + tasks: + - name: Ping Servers + ansible.builtin.ping: From b54fb4428f1cb10e0587a12665e972e9c59ffc5a Mon Sep 17 00:00:00 2001 From: Arinze Chinelo Jennifer Date: Sat, 3 May 2025 00:38:21 +0100 Subject: [PATCH 04/21] pom file --- pom.xml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml index 9e1759e..63acf74 100644 --- a/pom.xml +++ b/pom.xml @@ -2,9 +2,9 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 com.web.cal - WebAppCal + war - 0.0.6 + 0.0.7 WebAppCal Maven Webapp http://maven.apache.org @@ -18,13 +18,10 @@ javax.servlet servlet-api - 2.5 - - + releases http://52.204.135.48:8081/nexus/content/repositories/releases - - + \ No newline at end of file From 29ec20fc3cf24b3ec60894bca35fae8a44b937e3 Mon Sep 17 00:00:00 2001 From: Arinze Chinelo Jennifer Date: Sat, 3 May 2025 00:42:04 +0100 Subject: [PATCH 05/21] new pom file --- pom.xml | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml index 63acf74..4e41947 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 com.web.cal - + WebAppCal war 0.0.7 WebAppCal Maven Webapp @@ -18,10 +18,26 @@ javax.servlet servlet-api + 2.5 + + - - - releases - http://52.204.135.48:8081/nexus/content/repositories/releases - - \ No newline at end of file + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.11.0 + + 17 + 17 + + + + org.apache.maven.plugins + maven-war-plugin + 3.3.2 + + + + \ No newline at end of file From e3ee285623326af8f57547c4c17614fe14697677 Mon Sep 17 00:00:00 2001 From: Arinze Chinelo Jennifer Date: Sat, 3 May 2025 14:57:24 +0100 Subject: [PATCH 06/21] jenkins pakage --- Jenkinsfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 17cb7ce..13d9b5c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -4,9 +4,8 @@ pipeline { stages { stage('Build') { steps { - echo 'Building..' sh""" - ls src + mvn package """ } } From 53f89975b187ccbd05a4fe7fd11e6cfab3500bbb Mon Sep 17 00:00:00 2001 From: Arinze Chinelo Jennifer Date: Sat, 3 May 2025 15:17:34 +0100 Subject: [PATCH 07/21] s3 bucket --- Jenkinsfile | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 13d9b5c..81570c8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -9,6 +9,15 @@ pipeline { """ } } + + stage('Build Artifact') { + steps { + sh""" + cd target + aws s3 cp WebAppCal-*.war s3://myproject1-bucketcalculator/ + """ + } + } stage('Deploy') { steps { sh""" From 3fdf000bed3da7283bd49e53d16e201e44154403 Mon Sep 17 00:00:00 2001 From: Arinze Chinelo Jennifer Date: Sat, 3 May 2025 15:27:04 +0100 Subject: [PATCH 08/21] added cleanup stage --- Jenkinsfile | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 81570c8..30337bb 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,7 +1,15 @@ pipeline { agent any - + stages { + stage('Clean Old Artifacts') { + steps { + sh""" + rm -rf target + """ + } + } + stage('Build') { steps { sh""" @@ -9,7 +17,7 @@ pipeline { """ } } - + stage('Build Artifact') { steps { sh""" @@ -18,6 +26,7 @@ pipeline { """ } } + stage('Deploy') { steps { sh""" From f62cc5fe74c3f29edda450a0adaa69e42b38b378 Mon Sep 17 00:00:00 2001 From: Arinze Chinelo Jennifer Date: Sat, 3 May 2025 15:29:49 +0100 Subject: [PATCH 09/21] version 6 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4e41947..dd4df1a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.web.cal WebAppCal war - 0.0.7 + 0.0.6 WebAppCal Maven Webapp http://maven.apache.org From 43cc92b42d2de0a19c5f87ec2bf56059b4cef22c Mon Sep 17 00:00:00 2001 From: Arinze Chinelo Jennifer Date: Sat, 3 May 2025 16:13:19 +0100 Subject: [PATCH 10/21] playbook --- ansible/group_vars/webservers.yml | 2 +- ansible/playbook.yml | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/ansible/group_vars/webservers.yml b/ansible/group_vars/webservers.yml index 7093e7a..56e3abc 100644 --- a/ansible/group_vars/webservers.yml +++ b/ansible/group_vars/webservers.yml @@ -1,3 +1,3 @@ ansible_user: ec2-user ansible_ssh_private_key_file: ~/.ssh/server-key -ansible_ssh_common_args: "-o StrictHostKeyChecking=nosudo" \ No newline at end of file +ansible_ssh_common_args: "-o StrictHostKeyChecking=no" \ No newline at end of file diff --git a/ansible/playbook.yml b/ansible/playbook.yml index 98450d9..987f555 100644 --- a/ansible/playbook.yml +++ b/ansible/playbook.yml @@ -1,8 +1,6 @@ --- - name: Update web servers hosts: webservers - remote_user: ec2-user - become: true tasks: - name: Ping Servers From b3e359eeac509b3cb1070194a87752304136981e Mon Sep 17 00:00:00 2001 From: Arinze Chinelo Jennifer Date: Sat, 3 May 2025 16:57:02 +0100 Subject: [PATCH 11/21] modification --- Jenkinsfile | 29 ++++++++++++++++++++--------- ansible/playbook.yml | 10 ++++++++-- 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 30337bb..60064bf 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,6 +1,9 @@ pipeline { agent any - + environment { + BUCKET_NAME="myproject1-bucketcalculator" + } + stages { stage('Clean Old Artifacts') { steps { @@ -18,21 +21,29 @@ pipeline { } } - stage('Build Artifact') { + stage('upload Artifact') { steps { - sh""" - cd target - aws s3 cp WebAppCal-*.war s3://myproject1-bucketcalculator/ - """ + script { + // find the war file + def artifactName = sh{script: "cd target && ls WebAppCal-*.war", returnStdout: true).trim() + + // set the artifact name as an enviroment variable + env.ARTIFACT_NAME = artifactName + + // upload it to s3 + sh """ + cd target + aws s3 cp ${artifactName} s3://${BUCKET_NAME}/ + """ } } - + } + stage('Deploy') { steps { sh""" cd ansible - ansible-playbook -i aws_ec2.yml playbook.yml - """ + ansible-playbook -i aws_ec2.yml playbook.yml -e "BUCKET_NAME=${env.BUCKET_NAME}" ARTIFACT_NAME=${env.ARTIFACT_NAME} """ } } } diff --git a/ansible/playbook.yml b/ansible/playbook.yml index 987f555..1c1b139 100644 --- a/ansible/playbook.yml +++ b/ansible/playbook.yml @@ -3,5 +3,11 @@ hosts: webservers tasks: - - name: Ping Servers - ansible.builtin.ping: + - name: Get Artifact + amazon.aws.s3_object: + bucket: {{BUCKET_NAME}} + object: {{ARTIFACT_NAME}} + dest: ~/{ARTIFACT_NAME} + mode: get + delegate_to: localhost + From 0ac3dbbfff1cf17b50b56ae8ef9200f39d7bd08c Mon Sep 17 00:00:00 2001 From: Arinze Chinelo Jennifer Date: Sat, 3 May 2025 17:01:05 +0100 Subject: [PATCH 12/21] playbook modification --- ansible/playbook.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ansible/playbook.yml b/ansible/playbook.yml index 1c1b139..83f9b77 100644 --- a/ansible/playbook.yml +++ b/ansible/playbook.yml @@ -5,9 +5,9 @@ tasks: - name: Get Artifact amazon.aws.s3_object: - bucket: {{BUCKET_NAME}} - object: {{ARTIFACT_NAME}} - dest: ~/{ARTIFACT_NAME} + bucket: "{{BUCKET_NAME}}" + object: "{{ARTIFACT_NAME}}" + dest: ~/"{{ARTIFACT_NAME}}" mode: get delegate_to: localhost From 60ba047932261aae16c3391355a84b7b8f8e34a4 Mon Sep 17 00:00:00 2001 From: Arinze Chinelo Jennifer Date: Sat, 3 May 2025 17:07:07 +0100 Subject: [PATCH 13/21] jenkinsfile --- Jenkinsfile | 30 ++++++++++++++---------------- ansible/playbook.yml | 8 ++++---- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 60064bf..1e3c276 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,50 +1,48 @@ pipeline { agent any + environment { - BUCKET_NAME="myproject1-bucketcalculator" + BUCKET_NAME = "myproject1-bucketcalculator" } stages { stage('Clean Old Artifacts') { steps { - sh""" - rm -rf target - """ + sh 'rm -rf target' } } stage('Build') { steps { - sh""" - mvn package - """ + sh 'mvn package' } } - stage('upload Artifact') { + stage('Upload Artifact') { steps { script { - // find the war file - def artifactName = sh{script: "cd target && ls WebAppCal-*.war", returnStdout: true).trim() + // Find the WAR file + def artifactName = sh(script: "cd target && ls WebAppCal-*.war", returnStdout: true).trim() - // set the artifact name as an enviroment variable + // Set it as an environment variable env.ARTIFACT_NAME = artifactName - // upload it to s3 + // Upload to S3 sh """ cd target aws s3 cp ${artifactName} s3://${BUCKET_NAME}/ """ + } } } - } stage('Deploy') { steps { - sh""" + sh """ cd ansible - ansible-playbook -i aws_ec2.yml playbook.yml -e "BUCKET_NAME=${env.BUCKET_NAME}" ARTIFACT_NAME=${env.ARTIFACT_NAME} """ + ansible-playbook -i aws_ec2.yml playbook.yml -e "BUCKET_NAME=${env.BUCKET_NAME} ARTIFACT_NAME=${env.ARTIFACT_NAME}" + """ } } } -} \ No newline at end of file +} diff --git a/ansible/playbook.yml b/ansible/playbook.yml index 83f9b77..d1497c5 100644 --- a/ansible/playbook.yml +++ b/ansible/playbook.yml @@ -5,9 +5,9 @@ tasks: - name: Get Artifact amazon.aws.s3_object: - bucket: "{{BUCKET_NAME}}" - object: "{{ARTIFACT_NAME}}" - dest: ~/"{{ARTIFACT_NAME}}" - mode: get + bucket: "{{BUCKET_NAME}}" + object: "{{ARTIFACT_NAME}}" + dest: ~/"{{ARTIFACT_NAME}}" + mode: get delegate_to: localhost From 72e84f95db87939fd9368f9503f5a7ae238d5ba2 Mon Sep 17 00:00:00 2001 From: Arinze Chinelo Jennifer Date: Sat, 3 May 2025 17:51:07 +0100 Subject: [PATCH 14/21] playbook deploy arifacts --- ansible/playbook.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ansible/playbook.yml b/ansible/playbook.yml index d1497c5..8c847a7 100644 --- a/ansible/playbook.yml +++ b/ansible/playbook.yml @@ -11,3 +11,7 @@ mode: get delegate_to: localhost +- name: Deploy Artifact To hosts + ansible.builtin.copy: + src: ~/"{{ARTIFACT_NAME}}" + dest: /home/ec2-user/apache-tomcat/webapps/"{{ARTIFACT_NAME}}" \ No newline at end of file From a631a0de1a0ca19aef63b123ff03827696a24d18 Mon Sep 17 00:00:00 2001 From: Arinze Chinelo Jennifer Date: Sat, 3 May 2025 17:55:17 +0100 Subject: [PATCH 15/21] ansibleplaybook --- ansible/playbook.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ansible/playbook.yml b/ansible/playbook.yml index 8c847a7..18c72ff 100644 --- a/ansible/playbook.yml +++ b/ansible/playbook.yml @@ -11,7 +11,7 @@ mode: get delegate_to: localhost -- name: Deploy Artifact To hosts - ansible.builtin.copy: - src: ~/"{{ARTIFACT_NAME}}" - dest: /home/ec2-user/apache-tomcat/webapps/"{{ARTIFACT_NAME}}" \ No newline at end of file + - name: Deploy Artifact To hosts + ansible.builtin.copy: + src: ~/"{{ARTIFACT_NAME}}" + dest: /home/ec2-user/apache-tomcat/webapps/"{{ARTIFACT_NAME}}" \ No newline at end of file From 2cec00cf95960c38a75276af5958ecc8f0f2516d Mon Sep 17 00:00:00 2001 From: Arinze Chinelo Jennifer Date: Sat, 3 May 2025 17:57:19 +0100 Subject: [PATCH 16/21] modified deploy artifacts --- ansible/playbook.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible/playbook.yml b/ansible/playbook.yml index 18c72ff..d914d84 100644 --- a/ansible/playbook.yml +++ b/ansible/playbook.yml @@ -11,7 +11,7 @@ mode: get delegate_to: localhost - - name: Deploy Artifact To hosts + - name: Deploy Artifact To Hosts ansible.builtin.copy: src: ~/"{{ARTIFACT_NAME}}" dest: /home/ec2-user/apache-tomcat/webapps/"{{ARTIFACT_NAME}}" \ No newline at end of file From 64ebffbf33266a0f89fb11d661b18064da4137cc Mon Sep 17 00:00:00 2001 From: Arinze Chinelo Jennifer Date: Sat, 3 May 2025 18:03:34 +0100 Subject: [PATCH 17/21] deploy --- ansible/playbook.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ansible/playbook.yml b/ansible/playbook.yml index d914d84..1451435 100644 --- a/ansible/playbook.yml +++ b/ansible/playbook.yml @@ -7,11 +7,11 @@ amazon.aws.s3_object: bucket: "{{BUCKET_NAME}}" object: "{{ARTIFACT_NAME}}" - dest: ~/"{{ARTIFACT_NAME}}" + dest: ~/{{ARTIFACT_NAME}} mode: get delegate_to: localhost - name: Deploy Artifact To Hosts ansible.builtin.copy: - src: ~/"{{ARTIFACT_NAME}}" - dest: /home/ec2-user/apache-tomcat/webapps/"{{ARTIFACT_NAME}}" \ No newline at end of file + src: ~/{{ARTIFACT_NAME}} + dest: /home/ec2-user/apache-tomcat/webapps/{{ARTIFACT_NAME}} \ No newline at end of file From a68de712f4ec38784e6d001fe5c230e1c8ddfda6 Mon Sep 17 00:00:00 2001 From: Arinze Chinelo Jennifer Date: Sat, 3 May 2025 18:07:00 +0100 Subject: [PATCH 18/21] changed artifact name to root --- ansible/playbook.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible/playbook.yml b/ansible/playbook.yml index 1451435..65cd14a 100644 --- a/ansible/playbook.yml +++ b/ansible/playbook.yml @@ -14,4 +14,4 @@ - name: Deploy Artifact To Hosts ansible.builtin.copy: src: ~/{{ARTIFACT_NAME}} - dest: /home/ec2-user/apache-tomcat/webapps/{{ARTIFACT_NAME}} \ No newline at end of file + dest: /home/ec2-user/apache-tomcat/webapps/ROOT.war \ No newline at end of file From f3abe2d6095a70c5e2637f344f5cce1db975e5ee Mon Sep 17 00:00:00 2001 From: Arinze chinelo Jennifer <118559504+valen5000@users.noreply.github.com> Date: Sat, 10 May 2025 15:55:34 +0100 Subject: [PATCH 19/21] Update Jenkinsfile --- Jenkinsfile | 40 ++++++++++++---------------------------- 1 file changed, 12 insertions(+), 28 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 1e3c276..7f4c4d3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,47 +1,31 @@ pipeline { agent any - environment { - BUCKET_NAME = "myproject1-bucketcalculator" + IMAGE_NAME = "valen5000/javaweb3" } - stages { - stage('Clean Old Artifacts') { + stage('Build WAR') { steps { - sh 'rm -rf target' + sh 'mvn clean package' } } - - stage('Build') { + stage('Build Docker Image') { steps { - sh 'mvn package' + sh 'docker build -t $IMAGE_NAME .' } } - - stage('Upload Artifact') { + stage('Push to Docker Hub') { steps { - script { - // Find the WAR file - def artifactName = sh(script: "cd target && ls WebAppCal-*.war", returnStdout: true).trim() - - // Set it as an environment variable - env.ARTIFACT_NAME = artifactName - - // Upload to S3 - sh """ - cd target - aws s3 cp ${artifactName} s3://${BUCKET_NAME}/ - """ + withCredentials([usernamePassword(credentialsId: 'docker-hub-creds', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) { + sh 'echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin' + sh 'docker push $IMAGE_NAME' } } } - - stage('Deploy') { + stage('Run Container') { steps { - sh """ - cd ansible - ansible-playbook -i aws_ec2.yml playbook.yml -e "BUCKET_NAME=${env.BUCKET_NAME} ARTIFACT_NAME=${env.ARTIFACT_NAME}" - """ + sh 'docker rm -f javaweb3 || true' + sh 'docker run -d --name javaweb3 -p 8081:8080 $IMAGE_NAME' } } } From dd795d34761ba746d57e4b154aba6ede682cec8d Mon Sep 17 00:00:00 2001 From: EC2 Default User Date: Sat, 10 May 2025 14:59:20 +0000 Subject: [PATCH 20/21] delete Jenkinsfilees --- ansible/aws_ec2.yml | 10 ---------- ansible/group_vars/webservers.yml | 3 --- ansible/playbook.yml | 17 ----------------- 3 files changed, 30 deletions(-) delete mode 100644 ansible/aws_ec2.yml delete mode 100644 ansible/group_vars/webservers.yml delete mode 100644 ansible/playbook.yml diff --git a/ansible/aws_ec2.yml b/ansible/aws_ec2.yml deleted file mode 100644 index d26fb3a..0000000 --- a/ansible/aws_ec2.yml +++ /dev/null @@ -1,10 +0,0 @@ -plugin: amazon.aws.aws_ec2 - -regions: - - us-east-1 - -groups: - webservers: "'project1-app' in tags.Name" - -hostnames: - - private-ip-address \ No newline at end of file diff --git a/ansible/group_vars/webservers.yml b/ansible/group_vars/webservers.yml deleted file mode 100644 index 56e3abc..0000000 --- a/ansible/group_vars/webservers.yml +++ /dev/null @@ -1,3 +0,0 @@ -ansible_user: ec2-user -ansible_ssh_private_key_file: ~/.ssh/server-key -ansible_ssh_common_args: "-o StrictHostKeyChecking=no" \ No newline at end of file diff --git a/ansible/playbook.yml b/ansible/playbook.yml deleted file mode 100644 index 65cd14a..0000000 --- a/ansible/playbook.yml +++ /dev/null @@ -1,17 +0,0 @@ ---- -- name: Update web servers - hosts: webservers - - tasks: - - name: Get Artifact - amazon.aws.s3_object: - bucket: "{{BUCKET_NAME}}" - object: "{{ARTIFACT_NAME}}" - dest: ~/{{ARTIFACT_NAME}} - mode: get - delegate_to: localhost - - - name: Deploy Artifact To Hosts - ansible.builtin.copy: - src: ~/{{ARTIFACT_NAME}} - dest: /home/ec2-user/apache-tomcat/webapps/ROOT.war \ No newline at end of file From a2c5abd63cd9e1ec2b9d4910463757840238fd78 Mon Sep 17 00:00:00 2001 From: EC2 Default User Date: Sat, 10 May 2025 16:13:21 +0000 Subject: [PATCH 21/21] modification --- Dockerfile | 8 ++++++++ Jenkinsfile | 13 ++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5aa3a3e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,8 @@ +# Use an official Tomcat image as a base +FROM tomcat:9-jdk11 + +# Copy the WAR file into the Tomcat webapps folder +COPY target/WebAppCal-0.0.6.war /usr/local/tomcat/webapps/JavaWeb3.war + +# Expose port 8080 (default port for Tomcat inside the container) +EXPOSE 8080 diff --git a/Jenkinsfile b/Jenkinsfile index 7f4c4d3..9313ee0 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -6,26 +6,33 @@ pipeline { stages { stage('Build WAR') { steps { + // Build the WAR file using Maven sh 'mvn clean package' } } stage('Build Docker Image') { steps { - sh 'docker build -t $IMAGE_NAME .' + // Build Docker image using the Dockerfile + sh 'docker build -t $IMAGE_NAME:latest .' } } stage('Push to Docker Hub') { steps { withCredentials([usernamePassword(credentialsId: 'docker-hub-creds', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) { + // Log in to Docker Hub sh 'echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin' - sh 'docker push $IMAGE_NAME' + // Push the image to Docker Hub + sh 'docker push $IMAGE_NAME:latest' } } } stage('Run Container') { steps { + // Remove any existing container (if any) sh 'docker rm -f javaweb3 || true' - sh 'docker run -d --name javaweb3 -p 8081:8080 $IMAGE_NAME' + + // Run the container, mapping port 8081 on the host to port 8080 in the container + sh 'docker run -d --name javaweb3 -p 8081:8080 $IMAGE_NAME:latest' } } }