diff --git a/Dockerfile b/Dockerfile index d7f61ab..5318ff7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Usa una imagen base de Node.js -FROM node:14 +FROM node:24-alpine # Establece el directorio de trabajo WORKDIR /usr/src/app diff --git a/Jenkinsfile b/Jenkinsfile index d53f440..751cb43 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -2,15 +2,13 @@ pipeline { agent any environment { - DOCKER_IMAGE_NAME = "lisandrodev/simple-nodejs" - DEPLOY_SERVER = "34.230.73.120" - DEPLOY_USER = "ubuntu" + DOCKER_IMAGE_NAME = "maguilaes/simple-nodejs" } stages { stage('Checkout') { steps { - git branch: "${env.BRANCH_NAME}", url: 'https://github.com/LisandroLuna/simple-nodejs.git' + git branch: "${env.BRANCH_NAME}", url: 'https://github.com/maguilaes/simple-nodejs.git' } } @@ -20,8 +18,7 @@ pipeline { sh "docker build -t ${DOCKER_IMAGE_NAME}:${env.BRANCH_NAME}-${env.BUILD_NUMBER} ." } } - } - + } stage('Test') { steps { script { @@ -29,8 +26,8 @@ pipeline { } } } - - stage('Tag Docker Image') { + + stage('Push Docker Image') { steps { script { withCredentials([usernamePassword(credentialsId: 'docker-hub-credentials', passwordVariable: 'DOCKER_HUB_PASSWORD', usernameVariable: 'DOCKER_HUB_USERNAME')]) { @@ -42,69 +39,19 @@ pipeline { } } } - - stage('Deploy TEST') { - when { - branch 'test' - } - steps { - script { - withCredentials([sshUserPrivateKey(credentialsId: 'ssh-user-aws', keyFileVariable: 'SSH_KEY')]) { - sh """ - ssh -o StrictHostKeyChecking=no -i ${SSH_KEY} ${DEPLOY_USER}@${DEPLOY_SERVER} bash -c ' - docker pull ${DOCKER_IMAGE_NAME}:${env.BRANCH_NAME}-${env.BUILD_NUMBER} - docker stop simple-nodejs || true - docker rm simple-nodejs || true - docker run -d --name simple-nodejs -p 3000:3000 ${DOCKER_IMAGE_NAME}:${env.BRANCH_NAME}-${env.BUILD_NUMBER} - ' - """ - } - } - } - } - - stage('Deploy Approval') { - when { - branch 'main' - } - steps { - script { - input message: 'Deploy to production?', ok: 'Yes, deploy' - } - } - } - - stage('Deploy PROD') { - when { - branch 'main' - } - steps { - script { - withCredentials([sshUserPrivateKey(credentialsId: 'ssh-user-aws', keyFileVariable: 'SSH_KEY')]) { - sh """ - ssh -o StrictHostKeyChecking=no -i ${SSH_KEY} ${DEPLOY_USER}@${DEPLOY_SERVER} bash -c ' - docker pull ${DOCKER_IMAGE_NAME}:${env.BRANCH_NAME}-${env.BUILD_NUMBER} - docker stop simple-nodejs || true - docker rm simple-nodejs || true - docker run -d --name simple-nodejs -p 3000:3000 ${DOCKER_IMAGE_NAME}:${env.BRANCH_NAME}-${env.BUILD_NUMBER} - ' - """ - } - } - } - } - } - + } post { always { script { try { - sh "sudo docker rmi ${DOCKER_IMAGE_NAME}:${env.BRANCH_NAME}-${env.BUILD_NUMBER}" - sh "sudo docker rmi ${DOCKER_IMAGE_NAME}:${env.BRANCH_NAME}-latest" + sh "docker rmi ${DOCKER_IMAGE_NAME}:${env.BRANCH_NAME}-${env.BUILD_NUMBER}" + sh "docker rmi ${DOCKER_IMAGE_NAME}:${env.BRANCH_NAME}-latest" } catch (Exception e) { echo 'Failed to remove Docker image.' } } } } -} \ No newline at end of file +} + +