diff --git a/Dockerfile b/Dockerfile index 6aeca85..98cf0d9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,6 @@ FROM openjdk:11-jre-slim ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar -ENTRYPOINT ["java","-jar","/app/jar"] +ENV SPRING_PROFILES_ACTIVE=docker +EXPOSE 9098 +ENTRYPOINT ["java","-jar","/app.jar"] diff --git a/Jenkinsfile b/Jenkinsfile index 54b41df..88fe46b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,7 +1,11 @@ -def label = "servicedemo-${UUID.randomUUID().toString()}" +def POD_LABEL="servicedemo-${UUID.randomUUID().toString()}" +def REGISTRY="docker.home.thejimnicholson.com/servicedemo" +def POM_VERSION="unknown" +def MVN_OPTS="-B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn" -podTemplate(label: label, containers: [ + +podTemplate(label: POD_LABEL, containers: [ containerTemplate( name: 'maven', image: 'maven:3.8.4-openjdk-17', @@ -12,12 +16,13 @@ podTemplate(label: label, containers: [ name: 'kaniko', image: 'gcr.io/kaniko-project/executor:debug', command: 'sleep', - args: '99d' + args: '30d' ) ], workspaceVolume: dynamicPVC()) { - node(label) { + node(POD_LABEL) { stage('Checkout') { checkout scm + sh "git fetch" GIT_HASH = sh ( script: 'git rev-parse --short HEAD', returnStdout: true @@ -26,14 +31,21 @@ podTemplate(label: label, containers: [ script: 'git describe --tags --always --dirty=-dirty', returnStdout: true ).trim() + container('maven') { - stage('Build') { - sh ''' - mvn clean package -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn - ''' + stage('Prep') { + sh """ + mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -Dartifact=fr.brouillard.oss:jgitver:0.14.0:jar:executable ${MVN_OPTS} + """ } - stage('Archive') { - archiveArtifacts artifacts: 'target/*.jar', followSymlinks: false + stage('Build') { + sh """ + mvn clean package -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn + """ + POM_VERSION=sh ( + script: "java -jar /root/.m2/repository/fr/brouillard/oss/jgitver/0.14.0/jgitver-0.14.0-executable.jar", + returnStdout: true + ) } } container('kaniko') { @@ -44,14 +56,16 @@ podTemplate(label: label, containers: [ -c `pwd` \ --insecure \ --skip-tls-verify \ - --no-push \ - --tarPath ./target/servicedemo.image.tar \ - --destination=servicedemo:${GIT_HASH}" + --tarPath ./target/servicedemo-${POM_VERSION}.image.tar \ + --destination=${REGISTRY}/servicedemo:${POM_VERSION} \ + --destination=${REGISTRY}/servicedemo:${GIT_HASH} \ + --destination=${REGISTRY}/servicedemo:latest" } } stage('Archive') { archiveArtifacts artifacts: 'target/*.tar', followSymlinks: false + archiveArtifacts artifacts: 'target/*.jar', followSymlinks: false } } } diff --git a/docker-compose.yml b/docker-compose.yml index 5d758e0..0e14daa 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ version: '3' services: student-service: container_name: servicedemo - image: servicedemo:latest + image: docker.home.thejimnicholson.com/servicedemo/servicedemo:latest ports: - "9098:9098" environment: