From f622eb3d3a85c082e3306a4b4923cf66abc546cd Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Wed, 24 Feb 2021 17:45:05 +0100
Subject: [PATCH] Refs #6

- Hostnames for each component added
- README cleanup
- hystrix-dashboard Dockerfile added
- fda-gateway needs a different implementatin of CORS (reports MVC not compatible with Spring Web on runtime)
- fda-analyse needs some production-grade Dockerfile, currently only dev-server
---
 README.md                                     | 32 +++++++++++--------
 docker-compose.yml                            |  8 +++++
 fda-analyse-service/Dockerfile                |  1 +
 fda-container-managing-service/Dockerfile     |  2 --
 .../resources/application-docker.properties   |  3 +-
 fda-database-managing-service/Dockerfile      |  2 --
 .../resources/application-docker.properties   |  3 +-
 .../resources/application-docker.properties   |  3 +-
 .../resources/application-docker.properties   |  9 ++----
 fda-query-service/Dockerfile                  |  2 --
 .../resources/application-docker.properties   |  4 +--
 fda-table-service/Dockerfile                  |  2 --
 .../resources/application-docker.properties   |  4 +--
 hystrix-dashboard/Dockerfile                  | 17 ++++++++++
 14 files changed, 53 insertions(+), 39 deletions(-)
 create mode 100644 hystrix-dashboard/Dockerfile

diff --git a/README.md b/README.md
index 5e61498c7b..df812f2c5f 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 # FAIR Data Austria Services
 
-### Build
+## Build
 
 Everything is handled by compose, just build it by running:
 
@@ -8,18 +8,12 @@ Everything is handled by compose, just build it by running:
 docker-compose build
 ```
 
-### Start
+## Start
 
 Now start all services by running:
 
 ```bash
-docker-compose up fda-discovery-server fda-gateway-service fda-database-managing-service fda-container-managing-service fda-query-service fda-table-service fda-analyse-service
-```
-
-Optionally, start the user interface by running:
-
-```bash
-docker-compose up fda-ui
+docker-compose up
 ```
 
 ### Troubleshooting
@@ -35,14 +29,26 @@ WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$Ref
 
 Install maven from Apache Org.:
 
-# Download maven e.g. 3.6.3
+Download maven e.g. 3.6.3
+
+```bash
 wget https://www-us.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz -P /tmp
+```
+
+Untar downloaded file to /opt
 
-# Untar downloaded file to /opt
+```bash
 sudo tar xf /tmp/apache-maven-*.tar.gz -C /opt
+```
 
-# Install the alternative version for the mvn in your system
+Install the alternative version for the mvn in your system
+
+```bash
 sudo update-alternatives --install /usr/bin/mvn mvn /opt/apache-maven-3.6.3/bin/mvn 363
+```
+
+Check if your configuration is ok. You may use your current or the 3.6.3 whenever you wish, running the command below.
 
-# Check if your configuration is ok. You may use your current or the 3.6.3 whenever you wish, running the command below.
+```bash
 sudo update-alternatives --config mvn
+```
diff --git a/docker-compose.yml b/docker-compose.yml
index 97085c2b3a..22510bd96d 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -4,6 +4,7 @@ services:
 
   fda-discovery-server:
     container_name: fda-discovery-server
+    hostname: fda-discovery-server
     build: ./fda-discovery-server
     image: fda-discovery-server
     environment:
@@ -16,6 +17,7 @@ services:
 
   fda-gateway-service:
     container_name: fda-gateway-service
+    hostname: fda-gateway-service
     build: ./fda-gateway-service
     image: fda-gateway-service
     network_mode: bridge
@@ -42,6 +44,7 @@ services:
 
   fda-database-managing-service:
     container_name: fda-database-managing-service
+    hostname: fda-database-managing-service
     build:
       context: ./fda-database-managing-service
     image: fda-database-managing-service
@@ -63,6 +66,7 @@ services:
 
   fda-container-managing-service:
     container_name: fda-container-managing-service
+    hostname: fda-container-managing-service
     build: ./fda-container-managing-service
     image: fda-container-managing-service
     network_mode: bridge
@@ -83,6 +87,7 @@ services:
 
   fda-query-service:
     container_name: fda-query-service
+    hostname: fda-query-service
     build: ./fda-query-service
     image: fda-query-service
     network_mode: bridge
@@ -105,6 +110,7 @@ services:
 
   fda-table-service:
     container_name: fda-table-service
+    hostname: fda-table-service
     build: ./fda-table-service
     image: fda-table-service
     network_mode: bridge
@@ -126,6 +132,7 @@ services:
 
   fda-analyse-service:
     container_name: fda-analyse-service
+    hostname: fda-analyse-service
     build: ./fda-analyse-service
     image: analyse-service
     network_mode: bridge
@@ -151,6 +158,7 @@ services:
 
   fda-ui:
     container_name: fda-ui
+    hostname: fda-ui
     build: ./fda-ui
     image: fda-ui
     expose:
diff --git a/fda-analyse-service/Dockerfile b/fda-analyse-service/Dockerfile
index ab50681b51..6ffdcf64d9 100644
--- a/fda-analyse-service/Dockerfile
+++ b/fda-analyse-service/Dockerfile
@@ -22,4 +22,5 @@ COPY . .
 
 EXPOSE 5000
 
+# TODO on runtime displays: "WARNING: This is a development server. Do not use it in a production deployment."
 CMD ["flask", "run"]
\ No newline at end of file
diff --git a/fda-container-managing-service/Dockerfile b/fda-container-managing-service/Dockerfile
index 42e8dcd881..50fb583bfd 100644
--- a/fda-container-managing-service/Dockerfile
+++ b/fda-container-managing-service/Dockerfile
@@ -7,8 +7,6 @@ COPY ./rest-service ./rest-service
 COPY ./services ./services
 COPY ./pom.xml ./
 
-ENV SPRING_MAIN_BANNER-MODE=off
-
 RUN mvn -fn -B dependency:go-offline > /dev/null
 
 RUN mvn -q clean package > /dev/null
diff --git a/fda-container-managing-service/rest-service/src/main/resources/application-docker.properties b/fda-container-managing-service/rest-service/src/main/resources/application-docker.properties
index 10cba5b39d..e2c5a77c39 100644
--- a/fda-container-managing-service/rest-service/src/main/resources/application-docker.properties
+++ b/fda-container-managing-service/rest-service/src/main/resources/application-docker.properties
@@ -1,9 +1,8 @@
 server.port=9091
 spring.application.name=fda-container-managing
 spring.main.banner-mode=off
-logging.level.=warn
+logging.level.root=warn
 logging.level.at.=info
-logging.level.pattern.console=%d %highlight(%-5level): %msg%n
 eureka.instance.hostname=fda-container-managing
 eureka.client.serviceUrl.defaultZone=http://fda-discovery-server:9090/eureka/
 eureka.instance.preferIpAddress=true
\ No newline at end of file
diff --git a/fda-database-managing-service/Dockerfile b/fda-database-managing-service/Dockerfile
index 6b4c28d5d2..d99df42b89 100644
--- a/fda-database-managing-service/Dockerfile
+++ b/fda-database-managing-service/Dockerfile
@@ -8,8 +8,6 @@ COPY ./rest-service ./rest-service
 COPY ./services ./services
 COPY ./pom.xml ./
 
-ENV SPRING_MAIN_BANNER-MODE=off
-
 RUN mvn -fn -B dependency:go-offline > /dev/null
 
 RUN mvn -q clean package > /dev/null
diff --git a/fda-database-managing-service/rest-service/src/main/resources/application-docker.properties b/fda-database-managing-service/rest-service/src/main/resources/application-docker.properties
index c348d1bc32..3a47b57c45 100644
--- a/fda-database-managing-service/rest-service/src/main/resources/application-docker.properties
+++ b/fda-database-managing-service/rest-service/src/main/resources/application-docker.properties
@@ -1,9 +1,8 @@
 server.port=9092
 spring.application.name=fda-database-managing
 spring.main.banner-mode=off
-logging.level.=warn
+logging.level.root=warn
 logging.level.at.=info
-logging.level.pattern.console=%d %highlight(%-5level): %msg%n
 eureka.instance.hostname=fda-database-managing
 eureka.client.serviceUrl.defaultZone=http://fda-discovery-server:9090/eureka/
 eureka.instance.preferIpAddress=true
\ No newline at end of file
diff --git a/fda-discovery-server/src/main/resources/application-docker.properties b/fda-discovery-server/src/main/resources/application-docker.properties
index b707ef00e1..b4fc2cc7f2 100644
--- a/fda-discovery-server/src/main/resources/application-docker.properties
+++ b/fda-discovery-server/src/main/resources/application-docker.properties
@@ -1,9 +1,8 @@
 server.port=9090
 spring.application.name=fda-discovery-server
 spring.main.banner-mode=off
-logging.level.=warn
+logging.level.root=warn
 logging.level.at.=info
-logging.level.pattern.console=%d %highlight(%-5level): %msg%n
 eureka.client.register-with-eureka=false
 eureka.client.fetch-registry=false
 eureka.instance.hostname=fda-discovery-server
diff --git a/fda-gateway-service/src/main/resources/application-docker.properties b/fda-gateway-service/src/main/resources/application-docker.properties
index bb7ba8c1b2..052b0cd4cb 100644
--- a/fda-gateway-service/src/main/resources/application-docker.properties
+++ b/fda-gateway-service/src/main/resources/application-docker.properties
@@ -1,11 +1,8 @@
 server.port=9095
 spring.application.name=fda-gateway-service
 spring.main.banner-mode=off
-logging.level.=warn
+logging.level.root=warn
 logging.level.at.=info
-logging.level.pattern.console=%d %highlight(%-5level): %msg%n
-eureka.client.register-with-eureka=false
-eureka.client.fetch-registry=false
+logging.pattern.console="%d %highlight(%-5level): %msg%n"
 eureka.instance.hostname=fda-gateway-service
-eureka.client.serviceUrl.defaultZone=http://fda-discovery-server:9090/eureka/
-eureka.instance.preferIpAddress=true
\ No newline at end of file
+eureka.client.serviceUrl.defaultZone=http://fda-discovery-server:9090/eureka/
\ No newline at end of file
diff --git a/fda-query-service/Dockerfile b/fda-query-service/Dockerfile
index 4829f8901f..a51e7bc2ef 100644
--- a/fda-query-service/Dockerfile
+++ b/fda-query-service/Dockerfile
@@ -9,8 +9,6 @@ COPY ./rest-service ./rest-service
 COPY ./services ./services
 COPY ./pom.xml ./
 
-ENV SPRING_MAIN_BANNER-MODE=off
-
 RUN mvn -fn -B dependency:go-offline > /dev/null
 
 RUN mvn -q clean package > /dev/null
diff --git a/fda-query-service/rest-service/src/main/resources/application-docker.properties b/fda-query-service/rest-service/src/main/resources/application-docker.properties
index d6e40d8472..faabd241e5 100644
--- a/fda-query-service/rest-service/src/main/resources/application-docker.properties
+++ b/fda-query-service/rest-service/src/main/resources/application-docker.properties
@@ -1,9 +1,7 @@
 server.port=9093
 spring.application.name=fda-query-service
 spring.main.banner-mode=off
-logging.level.=warn
+logging.level.root=warn
 logging.level.at.=info
-logging.level.pattern.console=%d %highlight(%-5level): %msg%n
 eureka.instance.hostname=fda-query-service
 eureka.client.serviceUrl.defaultZone=http://fda-discovery-server:9090/eureka/
-eureka.instance.preferIpAddress=true
\ No newline at end of file
diff --git a/fda-table-service/Dockerfile b/fda-table-service/Dockerfile
index 0bac51104c..8f12172844 100644
--- a/fda-table-service/Dockerfile
+++ b/fda-table-service/Dockerfile
@@ -8,8 +8,6 @@ COPY ./rest-service ./rest-service
 COPY ./services ./services
 COPY ./pom.xml ./
 
-ENV SPRING_MAIN_BANNER-MODE=off
-
 RUN mvn -fn -B dependency:go-offline > /dev/null
 
 RUN mvn -q clean package > /dev/null
diff --git a/fda-table-service/rest-service/src/main/resources/application-docker.properties b/fda-table-service/rest-service/src/main/resources/application-docker.properties
index 40e7bc18fc..556c1e3dae 100644
--- a/fda-table-service/rest-service/src/main/resources/application-docker.properties
+++ b/fda-table-service/rest-service/src/main/resources/application-docker.properties
@@ -1,12 +1,10 @@
 server.port=9094
 spring.application.name=fda-table-service
 spring.main.banner-mode=off
-logging.level.=warn
+logging.level.root=warn
 logging.level.at.=info
-logging.level.pattern.console=%d %highlight(%-5level): %msg%n
 eureka.instance.hostname=fda-table-service
 eureka.client.serviceUrl.defaultZone=http://fda-discovery-server:9090/eureka/
-eureka.instance.preferIpAddress=true
 spring.servlet.multipart.max-file-size=50MB
 spring.servlet.multipart.max-request-size=50MB
 multipart.location=${java.io.tmpdir}
\ No newline at end of file
diff --git a/hystrix-dashboard/Dockerfile b/hystrix-dashboard/Dockerfile
new file mode 100644
index 0000000000..49ab8f0772
--- /dev/null
+++ b/hystrix-dashboard/Dockerfile
@@ -0,0 +1,17 @@
+###### FIRST STAGE ######
+FROM maven:slim as build
+MAINTAINER Martin Weise <martin.weise@tuwien.ac.at>
+
+COPY ./src ./src
+COPY ./pom.xml ./
+
+RUN mvn -fn -B dependency:go-offline > /dev/null
+
+RUN mvn -q clean package > /dev/null
+
+###### SECOND STAGE ######
+FROM openjdk:11-jre-slim as runtime
+
+COPY --from=build ./rest-service/target/hystrix-dashboard-*.jar ./hystrix.jar
+
+ENTRYPOINT ["java", "-jar", "./hystrix.jar"]
-- 
GitLab