From cc8e56e4b78956f76ced971fa6b9f73a6b8e6cb7 Mon Sep 17 00:00:00 2001 From: Anca Iordache Date: Thu, 5 Mar 2020 19:23:28 +0100 Subject: [PATCH] add spring-postgres application sample Signed-off-by: Anca Iordache --- samples/spring-postgres/backend/Dockerfile | 12 ++++ samples/spring-postgres/backend/pom.xml | 71 +++++++++++++++++++ .../java/com/company/project/Application.java | 16 +++++ .../project/controllers/HomeController.java | 16 +++++ .../src/main/resources/application.properties | 1 + .../src/main/resources/templates/home.ftl | 9 +++ samples/spring-postgres/db/password.txt | 1 + samples/spring-postgres/docker-compose.yaml | 21 ++++++ 8 files changed, 147 insertions(+) create mode 100755 samples/spring-postgres/backend/Dockerfile create mode 100755 samples/spring-postgres/backend/pom.xml create mode 100755 samples/spring-postgres/backend/src/main/java/com/company/project/Application.java create mode 100755 samples/spring-postgres/backend/src/main/java/com/company/project/controllers/HomeController.java create mode 100755 samples/spring-postgres/backend/src/main/resources/application.properties create mode 100755 samples/spring-postgres/backend/src/main/resources/templates/home.ftl create mode 100644 samples/spring-postgres/db/password.txt create mode 100644 samples/spring-postgres/docker-compose.yaml diff --git a/samples/spring-postgres/backend/Dockerfile b/samples/spring-postgres/backend/Dockerfile new file mode 100755 index 0000000..10e0920 --- /dev/null +++ b/samples/spring-postgres/backend/Dockerfile @@ -0,0 +1,12 @@ +FROM maven:3.5-jdk-9 AS build +COPY pom.xml . +RUN mvn --batch-mode dependency:resolve +COPY . . +RUN mvn --batch-mode package +RUN cp target/*jar target/app.jar + +FROM openjdk:9-jre +EXPOSE 8080 +VOLUME /tmp +COPY --from=build target/app.jar app.jar +ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] diff --git a/samples/spring-postgres/backend/pom.xml b/samples/spring-postgres/backend/pom.xml new file mode 100755 index 0000000..aeef767 --- /dev/null +++ b/samples/spring-postgres/backend/pom.xml @@ -0,0 +1,71 @@ + + + 4.0.0 + + com.company + project + 0.0.1-SNAPSHOT + jar + + New App + My new SpringBoot app + + + org.springframework.boot + spring-boot-starter-parent + 2.0.3.RELEASE + + + + + UTF-8 + UTF-8 + 1.8 + + + + + org.springframework.boot + spring-boot-starter-jersey + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.session + spring-session-core + + + org.springframework.boot + spring-boot-devtools + + + org.springframework.boot + spring-boot-starter-freemarker + + + org.springframework.boot + spring-boot-starter-test + test + + + org.projectlombok + lombok + + + javax.xml.bind + jaxb-api + 2.3.0 + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + diff --git a/samples/spring-postgres/backend/src/main/java/com/company/project/Application.java b/samples/spring-postgres/backend/src/main/java/com/company/project/Application.java new file mode 100755 index 0000000..16b8c45 --- /dev/null +++ b/samples/spring-postgres/backend/src/main/java/com/company/project/Application.java @@ -0,0 +1,16 @@ +package com.company.project; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +@SpringBootApplication +@EnableAutoConfiguration +@ComponentScan(basePackages = {"com.company.project"}) +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } +} diff --git a/samples/spring-postgres/backend/src/main/java/com/company/project/controllers/HomeController.java b/samples/spring-postgres/backend/src/main/java/com/company/project/controllers/HomeController.java new file mode 100755 index 0000000..966839d --- /dev/null +++ b/samples/spring-postgres/backend/src/main/java/com/company/project/controllers/HomeController.java @@ -0,0 +1,16 @@ +package com.company.project.controllers; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +@Controller +public class HomeController { + + @GetMapping("/") + public String showHome(String name, Model model) { + return "home"; + } + +} diff --git a/samples/spring-postgres/backend/src/main/resources/application.properties b/samples/spring-postgres/backend/src/main/resources/application.properties new file mode 100755 index 0000000..8b13789 --- /dev/null +++ b/samples/spring-postgres/backend/src/main/resources/application.properties @@ -0,0 +1 @@ + diff --git a/samples/spring-postgres/backend/src/main/resources/templates/home.ftl b/samples/spring-postgres/backend/src/main/resources/templates/home.ftl new file mode 100755 index 0000000..daba182 --- /dev/null +++ b/samples/spring-postgres/backend/src/main/resources/templates/home.ftl @@ -0,0 +1,9 @@ + + + + Getting Started: Serving Web Content + + + +

Hello from Docker!

+ diff --git a/samples/spring-postgres/db/password.txt b/samples/spring-postgres/db/password.txt new file mode 100644 index 0000000..dda70f4 --- /dev/null +++ b/samples/spring-postgres/db/password.txt @@ -0,0 +1 @@ +db-wrz2z \ No newline at end of file diff --git a/samples/spring-postgres/docker-compose.yaml b/samples/spring-postgres/docker-compose.yaml new file mode 100644 index 0000000..307a6a7 --- /dev/null +++ b/samples/spring-postgres/docker-compose.yaml @@ -0,0 +1,21 @@ +version: "3.7" +services: + backend: + build: backend + ports: + - 80:8080 + db: + environment: + POSTGRES_DB: example + POSTGRES_PASSWORD_FILE: /run/secrets/db-password + image: postgres + restart: always + secrets: + - db-password + volumes: + - db-data:/var/lib/postgresql/data +volumes: + db-data: {} +secrets: + db-password: + file: db/password.txt