diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 000000000..ef10412bb --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,45 @@ +pipeline { + agent any + + environment { + IMAGE_NAME = "local-app:latest" + CONTAINER_NAME = "local-app-container" + } + + stages { + stage('Checkout') { + steps { + git 'https://github.com/vinayasuresh/spring-petclinic.git' + } + } + + stage('Build App') { + steps { + sh 'mvn clean package -DskipTests' + } + } + + stage('Build Docker Image') { + steps { + sh 'docker build -t $IMAGE_NAME .' + } + } + + stage('Stop Existing Container') { + steps { + sh ''' + docker stop $CONTAINER_NAME || true + docker rm $CONTAINER_NAME || true + ''' + } + } + + stage('Run Docker Container') { + steps { + sh ''' + docker run -d --name $CONTAINER_NAME -p 8080:8080 $IMAGE_NAME + ''' + } + } + } +} diff --git a/jenkinsfile b/jenkinsfile deleted file mode 100644 index 9acb62687..000000000 --- a/jenkinsfile +++ /dev/null @@ -1,27 +0,0 @@ -pipeline { - agent any - - environment { - IMAGE_NAME = 'app' - } - - stages { - stage('Clone') { - steps { - git 'https://github.com/vinayasuresh/spring-petclinic' - } - } - - stage('Build Docker Image') { - steps { - sh 'docker build -t $IMAGE_NAME .' - } - } - - stage('Run Container') { - steps { - sh 'docker run -d --rm --name spring-petfield -p 3000:3000 $IMAGE_NAME' - } - } - } -}