From a042e32c2f9d7f4c1b32a44115bf8320bd699a0d Mon Sep 17 00:00:00 2001 From: moleksiienko Date: Mon, 13 Jan 2025 23:25:13 +0200 Subject: [PATCH] dockerfile added --- Dockerfile | 17 +++++++++++++++++ cicd/jenkins-pipelines/build.groovy | 19 ++++++------------- 2 files changed, 23 insertions(+), 13 deletions(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..98feae1b2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +# Use an OpenJDK base image +FROM openjdk:17-jdk-slim + +# Set the working directory in the container +WORKDIR /app + +# Define a build argument for the artifact version +ARG ARTIFACT_VERSION + +# Copy the JAR file into the image dynamically using the provided version +COPY target/petclinic-${ARTIFACT_VERSION}.jar app.jar + +# Expose port 80 for the application +EXPOSE 80 + +# Run the application +ENTRYPOINT ["java", "-jar", "/app/app.jar"] diff --git a/cicd/jenkins-pipelines/build.groovy b/cicd/jenkins-pipelines/build.groovy index 880e575a3..93e838bbd 100644 --- a/cicd/jenkins-pipelines/build.groovy +++ b/cicd/jenkins-pipelines/build.groovy @@ -4,10 +4,10 @@ pipeline { // pollSCM('H/5 * * * *') // Watches the `dev` branch // } environment { - DOCKERHUB_CREDENTIALS = credentials('nalexxgd-docker-pass') + DOCKERHUB_CREDENTIALS = credentials('nalexxgd_docker_pass') DOCKERHUB_USERNAME = "nalexxgd" NEXUS_URL = 'localhost:8081' - ARTIFACT_VERSION = sh(script: "mvn help:evaluate -Dexpression=project.version -q -DforceStdout", returnStdout: true).trim() + def ARTIFACT_VERSION = sh(script: "mvn help:evaluate -Dexpression=project.version -q -DforceStdout", returnStdout: true).trim() } stages { @@ -25,24 +25,17 @@ pipeline { stage('Upload to Nexus') { steps { sh """ - mvn deploy:deploy-file \\ - -DgroupId=org \\ - -DartifactId=petclinic \\ - -Dversion=${ARTIFACT_VERSION}\\ - -Dpackaging=jar \\ - -Dfile=./target/spring-petclinic-${ARTIFACT_VERSION}.jar \\ - -DrepositoryId=maven-snapshots \\ - -Durl=http://${NEXUS_URL}/repository/maven-snapshots/ --settings settings.xml + mvn deploy:deploy-file -DgroupId=org -DartifactId=petclinic -Dversion=${ARTIFACT_VERSION} -Dpackaging=jar -Dfile=./target/spring-petclinic-${ARTIFACT_VERSION}.jar -DrepositoryId=maven-snapshots -Durl=http://${NEXUS_URL}/repository/maven-snapshots/ --settings settings.xml """ } } stage('Build Docker Image') { steps { script { - sh "docker build -t petclinic:${ARTIFACT_VERSION} ." - sh "docker tag petclinic:${version} ${DOCKERHUB_USERNAME}/petclinic:${ARTIFACT_VERSION}" + sh "docker build --build-arg ARTIFACT_VERSION=${ARTIFACT_VERSION} -t petclinic:${ARTIFACT_VERSION} ." + sh "docker tag petclinic:${ARTIFACT_VERSION} ${DOCKERHUB_USERNAME}/petclinic:${ARTIFACT_VERSION}" sh "docker login -u ${DOCKERHUB_USERNAME} -p ${DOCKERHUB_CREDENTIALS}" - sh "docker push ${DOCKERHUB_USERNAME}/petclinic:${version}" + sh "docker push ${DOCKERHUB_USERNAME}/petclinic:${ARTIFACT_VERSION}" } } }