Update SparkJava samples

Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
This commit is contained in:
Guillaume Lours 2020-03-17 15:30:49 +01:00
parent fdc1e84d85
commit 3f8a58ef62
9 changed files with 41 additions and 33 deletions

View File

@ -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"]
```

View File

@ -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

View File

@ -40,7 +40,7 @@
<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-core</artifactId>
<version>2.5</version>
<version>2.8.0</version>
</dependency>
<dependency>

View File

@ -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

View File

@ -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

View File

@ -3,4 +3,4 @@ services:
sparkjava:
build: sparkjava
ports:
- 80:8080
- 8080:8080

View File

@ -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

View File

@ -40,7 +40,7 @@
<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-core</artifactId>
<version>2.5</version>
<version>2.8.0</version>
</dependency>
</dependencies>

View File

@ -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!");
}
}