From 3f8a58ef62c6f8cc2ab7a64205f0b9dc38b32e3f Mon Sep 17 00:00:00 2001 From: Guillaume Lours Date: Tue, 17 Mar 2020 15:30:49 +0100 Subject: [PATCH] Update SparkJava samples Signed-off-by: Guillaume Lours --- sparkjava-mysql/README.md | 12 ++++++------ sparkjava-mysql/backend/Dockerfile | 16 ++++++++++------ sparkjava-mysql/backend/pom.xml | 2 +- sparkjava-mysql/docker-compose.yaml | 4 ++-- sparkjava/README.md | 18 +++++++++--------- sparkjava/docker-compose.yaml | 2 +- sparkjava/sparkjava/Dockerfile | 16 ++++++++++------ sparkjava/sparkjava/pom.xml | 2 +- sparkjava/sparkjava/src/main/java/App.java | 2 +- 9 files changed, 41 insertions(+), 33 deletions(-) diff --git a/sparkjava-mysql/README.md b/sparkjava-mysql/README.md index 095e8de..65ab1d4 100644 --- a/sparkjava-mysql/README.md +++ b/sparkjava-mysql/README.md @@ -21,14 +21,14 @@ services: backend: build: backend ports: - - 80:8080 + - 8080:8080 db: - image: mysql:5.7 + image: mysql:8.0.19 ... ``` The compose file defines an application with two services `backend` and `db`. When deploying the application, docker-compose maps port 8080 of the backend service container to port 80 of the host as specified in the file. -Make sure port 80 on the host is not already being in use. +Make sure port 8080 on the host is not already being in use. ## Deploy with docker-compose @@ -49,13 +49,13 @@ Listing containers must show two containers running and the port mapping as belo ``` $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -ee1e4f05d9f6 sparkjava-mysql_backend "/bin/sh -c 'java -j…" 44 seconds ago Up 43 seconds 0.0.0.0:80->8080/tcp sparkjava-mysql_backend_1 -716025ddf65b mysql:5.7 "docker-entrypoint.s…" 44 seconds ago Up 43 seconds 3306/tcp, 33060/tcp sparkjava-mysql_db_1 +ee1e4f05d9f6 sparkjava-mysql_backend "/bin/sh -c 'java -j…" 44 seconds ago Up 43 seconds 0.0.0.0:8080->8080/tcp sparkjava-mysql_backend_1 +716025ddf65b mysql:8.0.19 "docker-entrypoint.s…" 44 seconds ago Up 43 seconds 3306/tcp, 33060/tcp sparkjava-mysql_db_1 ``` After the application starts, run: ``` -$ curl localhost:80 +$ curl localhost:8080 ["Blog post #0","Blog post #1","Blog post #2","Blog post #3","Blog post #4"] ``` diff --git a/sparkjava-mysql/backend/Dockerfile b/sparkjava-mysql/backend/Dockerfile index 4df8594..073709a 100755 --- a/sparkjava-mysql/backend/Dockerfile +++ b/sparkjava-mysql/backend/Dockerfile @@ -1,10 +1,14 @@ -FROM maven:3.5-jdk-8-alpine AS build -COPY pom.xml . -RUN mvn --batch-mode dependency:resolve -COPY src/ src +FROM maven:3.6.3-jdk-11 AS build +WORKDIR /workdir/server +COPY pom.xml /workdir/server/pom.xml +RUN mvn dependency:go-offline + +COPY src /workdir/server/src + RUN mvn --batch-mode clean compile assembly:single -FROM openjdk:8-jre-alpine3.7 +FROM openjdk:11-jre-slim +ARG DEPENDENCY=/workdir/server/target EXPOSE 8080 -COPY --from=build target/app.jar /app.jar +COPY --from=build ${DEPENDENCY}/app.jar /app.jar CMD java -jar /app.jar diff --git a/sparkjava-mysql/backend/pom.xml b/sparkjava-mysql/backend/pom.xml index aebd30c..af4c477 100755 --- a/sparkjava-mysql/backend/pom.xml +++ b/sparkjava-mysql/backend/pom.xml @@ -40,7 +40,7 @@ com.sparkjava spark-core - 2.5 + 2.8.0 diff --git a/sparkjava-mysql/docker-compose.yaml b/sparkjava-mysql/docker-compose.yaml index 019ab4c..92cd6aa 100644 --- a/sparkjava-mysql/docker-compose.yaml +++ b/sparkjava-mysql/docker-compose.yaml @@ -3,14 +3,14 @@ services: backend: build: backend ports: - - 80:8080 + - 8080:8080 secrets: - db-password db: environment: MYSQL_DATABASE: example MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db-password - image: mysql:5.7 + image: mysql:8.0.19 restart: always secrets: - db-password diff --git a/sparkjava/README.md b/sparkjava/README.md index 4905643..6977406 100644 --- a/sparkjava/README.md +++ b/sparkjava/README.md @@ -18,11 +18,11 @@ services: sparkjava: build: sparkjava ports: - - 80:8080 + - 8080:8080 ``` The compose file defines an application with one service `sparkjava`. -When deploying the application, docker-compose maps port 8080 of the sparkjava service container to port 80 of the host as specified in the file. -Make sure port 80 on the host is not already being in use. +When deploying the application, docker-compose maps port 8080 of the sparkjava service container to port 8080 of the host as specified in the file. +Make sure port 8080 on the host is not already being in use. ## Deploy with docker-compose @@ -30,8 +30,8 @@ Make sure port 80 on the host is not already being in use. $ docker-compose up -d Creating network "sparkjava_default" with the default driver Building sparkjava -Step 1/9 : FROM maven:3.5-jdk-8-alpine AS build -3.5-jdk-8-alpine: Pulling from library/maven +Step 1/11 : FROM maven:3.6.3-jdk-11 AS build +3.6.3-jdk-11: Pulling from library/maven ... Successfully tagged sparkjava_sparkjava:latest WARNING: Image for service sparkjava was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`. @@ -44,13 +44,13 @@ Listing containers must show two containers running and the port mapping as belo ``` $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -5af94cb25394 sparkjava_sparkjava "/bin/sh -c 'java -j…" 20 seconds ago Up 19 seconds 0.0.0.0:80->8080/tcp sparkjava_sparkjava_1 +5af94cb25394 sparkjava_sparkjava "/bin/sh -c 'java -j…" 20 seconds ago Up 19 seconds 0.0.0.0:8080->8080/tcp sparkjava_sparkjava_1 ``` -After the application starts, navigate to `http://localhost:80` in your web browser or run: +After the application starts, navigate to `http://localhost:8080` in your web browser or run: ``` -$ curl localhost:80 -Hello world +$ curl localhost:8080 +Hello from Docker! ``` Stop and remove the containers diff --git a/sparkjava/docker-compose.yaml b/sparkjava/docker-compose.yaml index 9a8d2bf..6bb45ee 100644 --- a/sparkjava/docker-compose.yaml +++ b/sparkjava/docker-compose.yaml @@ -3,4 +3,4 @@ services: sparkjava: build: sparkjava ports: - - 80:8080 + - 8080:8080 diff --git a/sparkjava/sparkjava/Dockerfile b/sparkjava/sparkjava/Dockerfile index 4df8594..073709a 100755 --- a/sparkjava/sparkjava/Dockerfile +++ b/sparkjava/sparkjava/Dockerfile @@ -1,10 +1,14 @@ -FROM maven:3.5-jdk-8-alpine AS build -COPY pom.xml . -RUN mvn --batch-mode dependency:resolve -COPY src/ src +FROM maven:3.6.3-jdk-11 AS build +WORKDIR /workdir/server +COPY pom.xml /workdir/server/pom.xml +RUN mvn dependency:go-offline + +COPY src /workdir/server/src + RUN mvn --batch-mode clean compile assembly:single -FROM openjdk:8-jre-alpine3.7 +FROM openjdk:11-jre-slim +ARG DEPENDENCY=/workdir/server/target EXPOSE 8080 -COPY --from=build target/app.jar /app.jar +COPY --from=build ${DEPENDENCY}/app.jar /app.jar CMD java -jar /app.jar diff --git a/sparkjava/sparkjava/pom.xml b/sparkjava/sparkjava/pom.xml index e2f41ea..b172d3f 100755 --- a/sparkjava/sparkjava/pom.xml +++ b/sparkjava/sparkjava/pom.xml @@ -40,7 +40,7 @@ com.sparkjava spark-core - 2.5 + 2.8.0 diff --git a/sparkjava/sparkjava/src/main/java/App.java b/sparkjava/sparkjava/src/main/java/App.java index d3b0d80..c45e017 100755 --- a/sparkjava/sparkjava/src/main/java/App.java +++ b/sparkjava/sparkjava/src/main/java/App.java @@ -4,6 +4,6 @@ public class App { public static void main(String[] args) { port(8080); - get("/", (req, res) -> "Hello world"); + get("/", (req, res) -> "Hello from Docker!"); } }