diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..3d873fce --- /dev/null +++ b/Dockerfile @@ -0,0 +1,8 @@ +FROM maven:3.6.3-jdk-11-slim as build +WORKDIR /opt/demo +COPY . /opt/demo +RUN mvn package -D skipTests + +FROM tomcat as run +WORKDIR /usr/local/tomcat +COPY --from=build /opt/demo/target/sysfoo.war webapps/root.war \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile index d77d8981..a9087c54 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,30 +1,85 @@ pipeline { - agent any + agent none stages { stage('build') { + agent { + docker { + image 'maven:3.6.3-jdk-11-slim' + } + + } steps { echo 'compile maven app' sh 'mvn compile' } } - + stage('test') { + agent { + docker { + image 'maven:3.6.3-jdk-11-slim' + } + + } steps { echo 'test maven app' sh 'mvn clean test' } } - + + stage('package') { - steps { - echo 'package maven app' - sh 'mvn package -DskipTests' - archiveArtifacts 'target/*.war' + parallel { + stage('package') { + agent { + docker { + image 'maven:3.6.3-jdk-11-slim' + } + + } + steps { + echo 'package maven app' + sh 'mvn package -DskipTests' + archiveArtifacts 'target/*.war' + } + } + + stage('Docker BnP') { + agent any + steps { + script { + docker.withRegistry('https://index.docker.io/v1/', 'imran1108') { + def dockerImage = docker.build("imran1108/sysfoo:v${env.BUILD_ID}", "./") + dockerImage.push() + dockerImage.push("latest") + dockerImage.push("dev") + } + } + + } + } + } + + stage('Deploy to Dev') { + when { + beforeAgent true + branch 'master' + } + + agent any + + steps { + echo 'Deploying to Dev Environment with Docker Compose' + sh 'docker-compose up -d' + } + } + } + } tools { maven 'Maven 3.6.3' } -} \ No newline at end of file +} diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 00000000..f58c3295 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,7 @@ +version: "3.8" + +services: +sysfoo: +image: imran1108/sysfoo:latest +ports: +- 8888:8080 diff --git a/jenkinsfile b/jenkinsfile deleted file mode 100644 index 491866c3..00000000 --- a/jenkinsfile +++ /dev/null @@ -1,30 +0,0 @@ -pipeline{ - -agent any - -tools{ -maven 'Maven 3.6.3' -} - -stages{ -stage('build'){ -steps{ -echo 'compile maven app' -sh 'mvn compile' -} -} -stage('test'){ -steps{ -echo 'test maven app' -sh 'mvn clean test' -} -} -stage('package'){ -steps{ -echo 'package maven app' -sh 'mvn package -DskipTests' -} -} -} - -}