From 83099d398cf7f0ef1c2d2faccca11634da39ed9e Mon Sep 17 00:00:00 2001 From: Yeswanth Date: Mon, 1 Dec 2025 22:28:13 +0530 Subject: [PATCH 1/2] Add Jenkins pipeline for Docker build and deployment --- Jenkinsfile | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 000000000..3f9a6ad11 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,53 @@ +pipeline { + agent { label 'linux' } + + environment { + IMAGE_NAME = "docker8098/test" + IMAGE_TAG = "v${BUILD_NUMBER}" + PROD_SERVER = "devops@98.81.86.76" + } + stages{ + stage('checkout') { + steps { + checkout scm + } + } + stage('testing'){ + steps { + sh 'echo We are testing this code' + } + } + stage('Docker build'){ + steps { + sh "docker build . -t ${IMAGE_NAME}:${IMAGE_TAG}" + } + } + stage('docker push') { + when { branch 'main'} + steps { + withCredentials([usernamePassword(credentialsId: 'dockerhub-creds', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) { + sh """ + echo "${DOCKER_PASS}" | docker login -u "${DOCKER_USER}" --password-stdin + docker push ${IMAGE_NAME}:${IMAGE_TAG} + docker logout + """ + } + } + } + stage('Prod Deployment') { + when { branch 'main' } + steps { + sshagent(credentials: ['prod-server-ssh']) { + sh """ + ssh -o StrictHostKeyChecking=no ${PROD_SERVER} " + docker pull ${IMAGE_NAME}:${IMAGE_TAG} && + docker stop web || true && + docker rm web || true && + docker run -d --name web -p 80:80 ${IMAGE_NAME}:${IMAGE_TAG} + " + """ + } + } + } + } +} From 97a37d31185292b87e6c41549248367679394ff1 Mon Sep 17 00:00:00 2001 From: Yeswanth Date: Tue, 2 Dec 2025 21:11:20 +0530 Subject: [PATCH 2/2] Create Dockerfile for Nginx setup --- Dockerfile | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..52b76ad66 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM ubuntu:22.04 + +RUN apt-get update && apt-get install nginx -y && rm -rf /var/lib/apt/lists/* + +COPY index.html /var/www/html/ + +COPY images/ /var/www/html/ + +EXPOSE 80 + +ENTRYPOINT ["nginx", "-g", "daemon off;"]