diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000..531177a8ea --- /dev/null +++ b/Dockerfile @@ -0,0 +1,10 @@ +FROM maven:3.9.6-eclipse-temurin-17 AS build +WORKDIR /app +copy pom.xml . +COPY src ./src +RUN mvn clean package -DskipTests + +FROM eclipse-temurin:17-jdk +WORKDIR /app +COPY --from=build /app/target/java-maven-docker-1.0-SNAPSHOT.jar app.jar +CMD ["java", "-jar", "app.jar"] diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000000..7141c9cc61 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,24 @@ +pipeline{ + agent any + stages{ + stage('Build'){ + steps{ + bat 'mvn clean package' + } + } + stage('Docker Build'){ + steps{ + script{ + dockerImage = docker.build("simple-java-maven-app") + } + } + } + stage('Docker Run'){ + steps{ + script{ + dockerImage.run('-p 8080:8080') + } + } + } + } +} \ No newline at end of file diff --git a/appspec.yml b/appspec.yml new file mode 100644 index 0000000000..eba928be88 --- /dev/null +++ b/appspec.yml @@ -0,0 +1,18 @@ +version: 0.0 +os: linux + +hooks: + ApplicationStop: + - location: inline + timeout: 300 + runas: root + commands: + - docker rm -f simple-java-maven-app || true # Stop and remove old container if it exists + + AfterInstall: + - location: inline + timeout: 300 + runas: root + commands: + - docker pull zangetsu203/simple-java-maven-app:latest # Pull the latest image from Docker Hub + - docker run -d --name simple-java-maven-app zangetsu203/simple-java-maven-app:latest # Run container