From 2635692c639609eba6712a0e1c1ba811e85b6d17 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Al=C5=BEbeta=20Hajn=C3=A1?= <xhajna@fi.muni.cz>
Date: Fri, 5 May 2023 10:14:41 +0200
Subject: [PATCH] feat: one dockerfile for build all modules + build stage,
 docker compose reflecting changes

---
 Dockerfile               | 44 ++++++++++++++++++++++++++++++++++++++++
 application/Dockerfile   |  3 ---
 core/Dockerfile          |  3 ---
 docker-compose.yaml      | 36 +++++++++++++++++++++-----------
 notification/Dockerfile  |  3 ---
 visualization/Dockerfile |  3 ---
 6 files changed, 68 insertions(+), 24 deletions(-)
 create mode 100644 Dockerfile
 delete mode 100644 application/Dockerfile
 delete mode 100644 core/Dockerfile
 delete mode 100644 notification/Dockerfile
 delete mode 100644 visualization/Dockerfile

diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..da0d673
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,44 @@
+# Define the base image
+FROM maven:3.9.0-eclipse-temurin-17-alpine AS build
+
+# Copy the pom.xml parent file and module dirs
+COPY pom.xml /build/pom.xml
+COPY application /build/application
+COPY core /build/core
+COPY notification /build/notification
+COPY visualization /build/visualization
+
+WORKDIR /build
+RUN mvn clean install -DskipTests
+
+FROM eclipse-temurin:17-jre-focal AS pa165-formula-team-management-application
+
+COPY --from=build /build/application/target/*.jar ./application.jar
+
+# Expose ports and set entry point
+EXPOSE 8081
+CMD ["java", "-jar", "application.jar"]
+
+FROM eclipse-temurin:17-jre-focal AS pa165-formula-team-management-core
+
+COPY --from=build /build/core/target/*.jar ./core.jar
+
+# Expose ports and set entry point
+EXPOSE 8090
+CMD ["java", "-jar", "core.jar"]
+
+FROM eclipse-temurin:17-jre-focal AS pa165-formula-team-management-notification
+
+COPY --from=build /build/notification/target/*.jar ./notification.jar
+
+# Expose ports and set entry point
+EXPOSE 8083
+CMD ["java", "-jar", "notification.jar"]
+
+FROM eclipse-temurin:17-jre-focal AS pa165-formula-team-management-visualization
+
+COPY --from=build /build/visualization/target/*.jar ./visualization.jar
+
+# Expose ports and set entry point
+EXPOSE 8082
+CMD ["java", "-jar", "visualization.jar"]
\ No newline at end of file
diff --git a/application/Dockerfile b/application/Dockerfile
deleted file mode 100644
index a418253..0000000
--- a/application/Dockerfile
+++ /dev/null
@@ -1,3 +0,0 @@
-FROM eclipse-temurin:17-jdk-alpine
-COPY target/*.jar /app.jar
-ENTRYPOINT ["java", "-jar", "/app.jar"]
diff --git a/core/Dockerfile b/core/Dockerfile
deleted file mode 100644
index a418253..0000000
--- a/core/Dockerfile
+++ /dev/null
@@ -1,3 +0,0 @@
-FROM eclipse-temurin:17-jdk-alpine
-COPY target/*.jar /app.jar
-ENTRYPOINT ["java", "-jar", "/app.jar"]
diff --git a/docker-compose.yaml b/docker-compose.yaml
index 71b0cb7..d4372ce 100644
--- a/docker-compose.yaml
+++ b/docker-compose.yaml
@@ -1,19 +1,31 @@
----
-version: '3'
+version: "3.9"
+
 services:
-  core:
-    build: "./core"
-    ports:
-      - "8090:8090"
   application:
-    build: "./application"
+    build:
+      context: .
+      target: pa165-formula-team-management-application
     ports:
       - "8081:8081"
-  visualization:
-    build: "./visualization"
+
+  core:
+    build:
+      context: .
+      target: pa165-formula-team-management-core
     ports:
-      - "8082:8082"
+      - "8090:8090"
+#    command: ["java", "-jar", "core.jar", "--server.port=8090"]
+
   notification:
-    build: "./notification"
+    build:
+      context: .
+      target: pa165-formula-team-management-notification
+    ports:
+      - "8083:8083"
+
+  visualization:
+    build:
+      context: .
+      target: pa165-formula-team-management-visualization
     ports:
-      - "8083:8083"
\ No newline at end of file
+      - "8082:8082"
\ No newline at end of file
diff --git a/notification/Dockerfile b/notification/Dockerfile
deleted file mode 100644
index a418253..0000000
--- a/notification/Dockerfile
+++ /dev/null
@@ -1,3 +0,0 @@
-FROM eclipse-temurin:17-jdk-alpine
-COPY target/*.jar /app.jar
-ENTRYPOINT ["java", "-jar", "/app.jar"]
diff --git a/visualization/Dockerfile b/visualization/Dockerfile
deleted file mode 100644
index a418253..0000000
--- a/visualization/Dockerfile
+++ /dev/null
@@ -1,3 +0,0 @@
-FROM eclipse-temurin:17-jdk-alpine
-COPY target/*.jar /app.jar
-ENTRYPOINT ["java", "-jar", "/app.jar"]
-- 
GitLab