diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..03e9a08 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +# .dockerignore +quartz-manager-frontend/node_modules diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..6105cbf --- /dev/null +++ b/Dockerfile @@ -0,0 +1,34 @@ +FROM maven:3.9.8-eclipse-temurin-21 AS build + +# Set the working directory +WORKDIR /app + +# Copy the pom.xml and download dependencies +COPY quartz-manager-parent/pom.xml ./quartz-manager-parent/ +COPY quartz-manager-parent/lombok.config ./quartz-manager-parent/ +COPY quartz-manager-parent/quartz-manager-common ./quartz-manager-parent/quartz-manager-common +COPY quartz-manager-parent/quartz-manager-starter-api ./quartz-manager-parent/quartz-manager-starter-api +COPY quartz-manager-parent/quartz-manager-starter-persistence ./quartz-manager-parent/quartz-manager-starter-persistence +COPY quartz-manager-parent/quartz-manager-starter-security ./quartz-manager-parent/quartz-manager-starter-security +COPY quartz-manager-parent/quartz-manager-starter-ui ./quartz-manager-parent/quartz-manager-starter-ui +COPY quartz-manager-parent/quartz-manager-web-showcase ./quartz-manager-parent/quartz-manager-web-showcase +COPY quartz-manager-parent/lombok.config ./quartz-manager-parent/ +COPY quartz-manager-frontend ./quartz-manager-frontend +WORKDIR /app/quartz-manager-parent +RUN mvn clean package -DskipTests -P=build-webjar + + +# Stage 2: Create the final image +FROM openjdk:11-jre-slim + +# Set the working directory +WORKDIR /app + +# Copy the JAR file from the build stage +COPY --from=build /app/quartz-manager-parent/quartz-manager-web-showcase/target/*.jar app.jar + +# Expose the application port +EXPOSE 8080 + +# Run the application +ENTRYPOINT ["java", "-jar", "app.jar"] diff --git a/quartz-manager-parent/pom.xml b/quartz-manager-parent/pom.xml index ac80760..325edf6 100644 --- a/quartz-manager-parent/pom.xml +++ b/quartz-manager-parent/pom.xml @@ -43,6 +43,7 @@ 9 UTF-8 + 1.18.30 2.22.0 2.22.0 0.8.8 @@ -100,6 +101,11 @@ quartz-manager-starter-ui 4.0.10-SNAPSHOT + + org.projectlombok + lombok + ${org.projectlombok.version} + diff --git a/quartz-manager-parent/quartz-manager-web-showcase/pom.xml b/quartz-manager-parent/quartz-manager-web-showcase/pom.xml index 123a045..7a10254 100644 --- a/quartz-manager-parent/quartz-manager-web-showcase/pom.xml +++ b/quartz-manager-parent/quartz-manager-web-showcase/pom.xml @@ -8,9 +8,9 @@ 4.0.10-SNAPSHOT - quartz-manager-web-showcase + jar - war + quartz-manager-web-showcase Quartz Manager Web Showcase A webapp that imports Quartz Manager API lib and the frontend webjar @@ -49,15 +49,10 @@ org.springframework.boot spring-boot-devtools - - org.springframework.boot - spring-boot-configuration-processor - true - - + org.springframework.boot - spring-boot-starter-tomcat - provided + spring-boot-configuration-processor + true org.springframework.boot @@ -123,30 +118,28 @@ - - - - org.springframework.boot - spring-boot-maven-plugin - - - - repackage - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.8.0 - - 9 - 9 - - - - + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.0 + + 9 + 9 + + + diff --git a/quartz-manager-parent/quartz-manager-web-showcase/src/main/java/it/fabioformosa/ServletInitializer.java b/quartz-manager-parent/quartz-manager-web-showcase/src/main/java/it/fabioformosa/ServletInitializer.java deleted file mode 100644 index dcc3414..0000000 --- a/quartz-manager-parent/quartz-manager-web-showcase/src/main/java/it/fabioformosa/ServletInitializer.java +++ /dev/null @@ -1,21 +0,0 @@ -package it.fabioformosa; - -import lombok.Generated; -import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; - -/** - * ServletInitializer needs to deploy quartz-manager into a servlet container as a war file - * - * @author Fabio Formosa - * - */ -@Generated -public class ServletInitializer extends SpringBootServletInitializer { - - @Override - protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { - return application.sources(QuartzManagerDemoApplication.class); - } - -}