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